如何在回调之外更新win32 dialogItem?

时间:2013-04-27 15:28:57

标签: winapi

我有一个以这种方式创建的Dialog:

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

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

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

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

那么,我怎么能:

  1. 无论是否有鼠标移动,都强制进行回调
  2. 从程序的主循环更新对话框项(文本框)?
  3. 我已经尝试过第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() );
    

    感谢。

0 个答案:

没有答案