C++ 显示在C+中不断变化的变量+;Win32

C++ 显示在C+中不断变化的变量+;Win32,c++,visual-studio-2013,win32gui,C++,Visual Studio 2013,Win32gui,我一直在开发一个应用程序,它将两个处理任务绑定到一个图形界面中。我有三个主要函数,每个函数在各自的线程中并行运行。一个处理从传感器获得的原始数据,第二个是用于显示数据的主win32应用程序,第三个与单独的计算机通信 我遇到的问题是在我的图形界面中显示从传感器接收到的信息,这些信息每25毫秒改变一次 我已经确定数据正在成功地从一个线程传递到另一个线程(作为一个整数) 在我的GUI中,我有专用于显示此信息的对话框,我当前的策略是在主消息循环中使用setDlgitEmit()函数。这就是while循环

我一直在开发一个应用程序,它将两个处理任务绑定到一个图形界面中。我有三个主要函数,每个函数在各自的线程中并行运行。一个处理从传感器获得的原始数据,第二个是用于显示数据的主win32应用程序,第三个与单独的计算机通信

我遇到的问题是在我的图形界面中显示从传感器接收到的信息,这些信息每25毫秒改变一次

我已经确定数据正在成功地从一个线程传递到另一个线程(作为一个整数)

在我的GUI中,我有专用于显示此信息的对话框,我当前的策略是在主消息循环中使用setDlgitEmit()函数。这就是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编程,我找不到一个例子来说明如何以这种方式显示信息,所以这是我在这个环境中利用我所知道的编程知识临时制作的。

尝试双缓冲数据显示的控件,如果可以的话:25毫秒的更新对人眼来说是过度杀伤力。您最好显著地降低可视化更新的速度,这也会对您的实际数据处理吞吐量产生良好的影响:GUI不会阻碍处理。节流可以用不同的方式进行。你可以引入一个计时器,并继续查看它。此外,您可能希望在数据可视化管道的某个早期阶段引入节流,而不仅仅是在最后。这两种方法的组合听起来不错。执行无闪烁更新,并减少更新频率(每秒10次就足够了)。您更新对话框的频率远高于每25ms更新一次。谢谢guy,这一切对我来说都很有意义,我今天将尝试一下。干杯如果可以的话,请尝试对显示数据的控件进行双缓冲:25ms的更新对人眼来说太过分了。您最好显著地降低可视化更新的速度,这也会对您的实际数据处理吞吐量产生良好的影响:GUI不会阻碍处理。节流可以用不同的方式进行。你可以引入一个计时器,并继续查看它。此外,您可能希望在数据可视化管道的某个早期阶段引入节流,而不仅仅是在最后。这两种方法的组合听起来不错。执行无闪烁更新,并减少更新频率(每秒10次就足够了)。您更新对话框的频率远高于每25ms更新一次。谢谢guy,这一切对我来说都很有意义,我今天将尝试一下。干杯