【发布时间】:2013-05-18 18:22:18
【问题描述】:
我有一个简单的应用程序,我在其中读取一些内部变量并将它们发布到菜单上的 EditControl。
这是一个代码sn-p
case 0:
SetWindowText(GetDlgItem( gHWnd, IDC_PACKETID ),
(LPSTR)std::to_string(long long(NC->mPacketNum)).c_str());
break;
所以那里发生了很多事情。我只是想将一个数字转换为可以在编辑对话框中显示的东西。这太慢了,我只要进入这个部分就可以从 50Hz 下降到大约 30Hz。
有什么想法可以显着加快速度吗?
【问题讨论】:
-
使用
SetDlgItemInt可以大大简化这行代码。 -
谢谢。我会试试的。我还尝试了 LPCTSTR(NC->mPacketNum),它工作正常,除非将该变量更改为浮点数。
-
基于浮点数的东西有什么简化吗?或者它会是一个 SetDlgItemText 的东西,带有浮点到文本的转换。
-
是的,我认为没有 MS 提供的浮点数包装器。
SetDlgItemText仍然保存单独的GetDlgItem。 -
我写了一个快速测试来分析 SetWindowText,它花了 78 微秒。使用适当的分析器来查找问题。
标签: winapi user-interface