Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.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
Windows 杂散的WM_大小会导致调整大小到错误的大小_Windows_Winapi - Fatal编程技术网

Windows 杂散的WM_大小会导致调整大小到错误的大小

Windows 杂散的WM_大小会导致调整大小到错误的大小,windows,winapi,Windows,Winapi,我有一个很严重的错误,我得到了一个错位的WM_SIZE消息,导致我的窗口调整到错误的大小 情景1(好): 用户执行放大窗口的不透明操作(以及其他非窗口操作) 应用程序使用较大的大小调用SetWindowPlacement 窗口的大小调整正确 场景2(bug): 与上面的1和2相同 在窗口调整大小之前的几秒钟内,用户通过标题拖动窗口(由于操作需要几秒钟才能完成,因此可以这样做) 窗口将调整为较大的大小,然后立即缩小为原始大小 使用Spy++,我发现确实有一个较大的WM_SIZE发送,但最后还有一个

我有一个很严重的错误,我得到了一个错位的
WM_SIZE
消息,导致我的窗口调整到错误的大小

情景1(好):

  • 用户执行放大窗口的不透明操作(以及其他非窗口操作)
  • 应用程序使用较大的大小调用SetWindowPlacement
  • 窗口的大小调整正确
  • 场景2(bug):

  • 与上面的1和2相同
  • 在窗口调整大小之前的几秒钟内,用户通过标题拖动窗口(由于操作需要几秒钟才能完成,因此可以这样做)
  • 窗口将调整为较大的大小,然后立即缩小为原始大小
  • 使用Spy++,我发现确实有一个较大的
    WM_SIZE
    发送,但最后还有一个额外的
    WM_SIZE
    ,与先前的大小一起发送

    我尝试了以下相关信息:
    WM\u WINDOWPOSCHANGING
    WM\u WINDOWPOSCHANGED
    WM\u MOUSEMOVE
    WM\u ENTERSIZEMOVE
    ——没有人暗示发生了什么


    你知道我应该在哪里查找这个错误消息的来源吗?

    “这是可能的,因为操作需要几秒钟才能完成”-可能是你的错误。假定在UI线程上运行的操作不需要几秒钟即可完成。卸下它,让你的用户界面恢复到响应速度。(OP)可能是非常值得研究的情况。然而,为什么要发送额外的WM_大小?如果我们需要评估,我们将能够更好地对此进行评论。我们还不清楚您的具体实现是什么,我无法重现您的问题。