0

我有一个以这种方式创建的对话框:

CreateDialog(GetModuleHandle(NULL), MAKEINTRESOURCE(IDD_NETWORKCONFIG),
        hWnd, Network);

该对话框有一些按钮、文本框等......一切正常。我可以根据回调外部的输入(在本例中为读取的数据包数)更新文本框中的文本,并将回调中的信息发送回主循环。

这一切都有效,除了......

该对话框仅在发生回调时更新,这需要我移动鼠标。因此,如果我移动鼠标,我会看到数据包的数量不断更新,但如果我不动,则不会。如果我保持不动,然后移动,数字会跳跃适当的数量。

那么,我怎么能:

  1. 无论是否有鼠标移动,都强制回调发生
  2. 从程序的主循环中更新对话框项(文本框)?

我尝试过第 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() );

谢谢。

4

0 回答 0