【WIN32开发】两个结构体判断是否相等

本文介绍了一种在软件开发中用于界面刷新的实用方法,通过比较前后两个结构体参数来判断是否需要刷新界面,使用InvalidateRect函数发送WM_PAINT消息实现界面更新。并提供了一个cmpBuff函数用于高效比较两个结构体的差异。

这个主要用于在界面刷新的问题,结构体代表整个软件里面的参数,如果里面某一个参数改变了就刷新界面。使用InvalidateRect(MainFrameHwnd, NULL, FALSE); 发送WM_PAINT消息刷新界面

//结构体1、结构体2、长度(sizeof(结构体1))
uint8_t cmpBuff(uint8_t* buff1, uint8_t* buff2, uint32_t leng)
{
	for (uint32_t i = 0; i<leng; i++)
	{
		if (buff1[i] != buff2[i])
		{
			return 1;//不相等
		}
	}

	return 0;
}

使用:

if (cmpBuff((uint8_t*)&pageStruct, (uint8_t*)&pageStruct_Refresh, sizeof(pageStruct)))
					{
						InvalidateRect(hwnd, NULL, FALSE); //刷新界面
						uint8_t *p1 = (uint8_t*)&pageStruct;
						uint8_t *p2 = (uint8_t*)&pageStruct_Refresh;
						memcpy(p2, p1, sizeof(pageStruct));
					}

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值