我一直致力于将一些处理任务连接到一个图形界面的应用程序。我有三个主要功能,每个功能都在自己的线程中并行运行。一个处理从传感器获得的原始数据,第二个是主要的win32应用程序,用于显示数据,第三个与单独的计算机通信。
我遇到的问题是在我的图形界面中显示我从传感器收到的信息,这些信息每25毫秒更改一次。
我已经确定数据正在从一个线程成功传递到另一个线程(作为整数)。
在我的GUI中,我有专门用于显示此信息的对话框,我当前的策略是在主消息循环中使用SetDlgItemInt()函数。这就是while循环现在的样子;
while (GetMessage(&msg, NULL, 0, 0))
{
SetDlgItemInt(hWnd, IDC_DISPBOX1, *Value, True);
if (!TranslateAccelerator(msg.hWnd, hAccelTable, &SMSFs))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
这会显示信息,但在更新时会不断闪烁,我想知道是否有更好的方法可以做到这一点。
我是win32 gui编程和GUI编程的新手,我无法找到如何使用这种方式显示信息的例子,所以这就是我即兴创作的使用我在这种环境中编程的知识。