小编cou*_*er0的帖子

为什么int x {y = 5}是可能的?

int main() {
    int y;
    int x{ y = 5 };
    //x is 5
}
Run Code Online (Sandbox Code Playgroud)

由于y = 5不是可计算的表达式,这怎么可能?

另外,为什么编译器或IDE不会抱怨main()不返回int?

c++ initialization declaration assignment-operator

10
推荐指数
2
解决办法
272
查看次数

在 WM_MOUSEFIRST 上找不到任何文档

我有我的自定义 WndProc,它应该根据我的 ImGui 菜单是否打开来处理输入。

if (Menu::isOpen) {
    ImGui_ImplWin32_WndProcHandler(hWnd, msg, wParam, lParam);
    if    (msg == WM_LBUTTONDOWN
        || msg == WM_LBUTTONUP
        || msg == WM_LBUTTONDBLCLK

        || msg == WM_MBUTTONDOWN
        || msg == WM_MBUTTONUP
        || msg == WM_MBUTTONDBLCLK

        || msg == WM_RBUTTONDOWN
        || msg == WM_RBUTTONUP
        || msg == WM_RBUTTONDBLCLK

        || msg == WM_XBUTTONDOWN
        || msg == WM_XBUTTONUP
        || msg == WM_XBUTTONDBLCLK
        || msg == WM_MOUSEFIRST) return 0;
}
return CallWindowProc((WNDPROC)Get().m_ulOldWndProc, hWnd, msg, wParam, lParam);
Run Code Online (Sandbox Code Playgroud)

我的目标是在我的 ImGui 打开时防止只有鼠标点击进入后台。我注意到如果我不阻止 WM_MOUSEFIRST 通过,一些点击仍然偶尔会在应用程序中注册。我还注意到,当我阻止 WM_MOUSEFIRST 通过时,将鼠标悬停在应用程序中的内容上不起作用,我想这样做。我以为我可以通过检查 wParams …

windows events winapi message-queue mouseevent

0
推荐指数
1
解决办法
835
查看次数