这个主要用于在界面刷新的问题,结构体代表整个软件里面的参数,如果里面某一个参数改变了就刷新界面。使用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));
}
本文介绍了一种在软件开发中用于界面刷新的实用方法,通过比较前后两个结构体参数来判断是否需要刷新界面,使用InvalidateRect函数发送WM_PAINT消息实现界面更新。并提供了一个cmpBuff函数用于高效比较两个结构体的差异。
2万+

被折叠的 条评论
为什么被折叠?



