Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Winapi 如何在回调之外更新win32 dialogItem?_Winapi - Fatal编程技术网

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

Winapi 如何在回调之外更新win32 dialogItem?,winapi,Winapi,我有一个这样创建的对话框: CreateDialog(GetModuleHandle(NULL), MAKEINTRESOURCE(IDD_NETWORKCONFIG), hWnd, Network); 该对话框有一些按钮、文本框等。。。。一切正常。 我可以根据回调外部的输入(在本例中为读取的数据包数)更新文本框中的文本,并将回调中的信息发送回主循环 这一切都有效,除了 对话框仅在回调发生时更新,这需要我移动鼠标。因此,如果我移动鼠标,我会看到数据包的数量不断更新,但如果我保持

我有一个这样创建的对话框:

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

这一切都有效,除了

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

那么,我怎样才能:

  • 无论是否有鼠标移动,强制执行回调
  • 是否从程序的主循环更新对话框项(文本框)
  • 我试过做第2项,但我得到的结果总是不好

    我需要一个可以从主循环调用的函数,该函数表示:

    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() );
    

    谢谢。

    CreateDialog的返回值是对话框的窗口句柄。你不能用它来代替示例代码中的
    h
    ?好主意。这几乎奏效了。有三个文本框,ID_EDIT3、ID_EDIT4、ID_EDIT5。ID_EDIT3现在像冠军一样更新。使用EDIT4和edit5的完全相同的静态_SetText行不起作用。它只有在我点击这些文本框时才会更新。很奇怪。除了名称之外,资源之间没有区别。有什么想法吗?调试器显示发送到它的数据为非零。更不用说上面。。。。。清理代码。它起作用了。谢谢