我有一个以这种方式创建的对话框:
CreateDialog(GetModuleHandle(NULL), MAKEINTRESOURCE(IDD_NETWORKCONFIG),
hWnd, Network);
该对话框有一些按钮、文本框等......一切正常。我可以根据回调外部的输入(在本例中为读取的数据包数)更新文本框中的文本,并将回调中的信息发送回主循环。
这一切都有效,除了......
该对话框仅在发生回调时更新,这需要我移动鼠标。因此,如果我移动鼠标,我会看到数据包的数量不断更新,但如果我不动,则不会。如果我保持不动,然后移动,数字会跳跃适当的数量。
那么,我怎么能:
- 无论是否有鼠标移动,都强制回调发生
- 从程序的主循环中更新对话框项(文本框)?
我尝试过第 2 项,但我得到的 HWND 总是很糟糕。
我需要一个可从主循环调用的函数,它说:
HWND h(GetDialogHandle(IDD_NETWORKCONFIG); // this is made up function, tried many
Static_SetText(GetDlgItem( h, IDC_EDIT3 ), (LPSTR)std::to_string(long long(NC->mNumSent)).c_str() );
谢谢。