C++ 我的windowProc函数中的奇数条件语句行为

C++ 我的windowProc函数中的奇数条件语句行为,c++,winapi,conditional-statements,C++,Winapi,Conditional Statements,我遇到了一个奇怪的问题,开关/机箱将到达HandleEvent,但消息不会到达相应的IF语句 例如,使用HandleEvent,当我点击红色X时,我的窗口不会关闭。消息将是WM_close(我选中),但由于某些原因,if语句处理不正确 起初,我认为WM_CLOSE案例从未接触过,但如果我对其他案例进行评论,它仍然不起作用。但是,如果我取出WM_ACTIVATEAPP和WM_SHOWWINDOW的if语句,将执行正确的语句。即使我删除了“else-if”并使其成为常规if,它也不起作用。为什么在此

我遇到了一个奇怪的问题,开关/机箱将到达HandleEvent,但消息不会到达相应的IF语句

例如,使用HandleEvent,当我点击红色X时,我的窗口不会关闭。消息将是WM_close(我选中),但由于某些原因,if语句处理不正确

起初,我认为WM_CLOSE案例从未接触过,但如果我对其他案例进行评论,它仍然不起作用。但是,如果我取出WM_ACTIVATEAPP和WM_SHOWWINDOW的if语句,将执行正确的语句。即使我删除了“else-if”并使其成为常规if,它也不起作用。为什么在此处选择正确的not IF语句?信息就是信息,你知道吗?我不明白。。。它应该到达正确的一个

LRESULT CALLBACK foo::WindowProc(HWND window, UINT message, WPARAM wparam, LPARAM lparam) {

switch(message) {
    case WM_ACTIVATEAPP:
    case WM_SHOWWINDOW:
    case WM_CLOSE:
                // Test for window
        if ((window == fooWindow) && (foo->HandleEvent(message, wparam, lparam)))
        {
            return ( 0 );
        }

        break;
    }

    return DefWindowProcW(window, message, wparam, lparam);
}    

bool foo::HandleEvent(UINT message, WPARAM wparam, LPARAM lparam) {

    if ( message == WM_ACTIVATEAPP ) {
        if ( wparam ) 
        {
            // Stuff
            ShowWindow(fooWindow, SW_RESTORE); 
        } else {
            // Stuff
            ShowWindow(fooWindow, SW_MINIMIZE); 
        }
    } else if ( message = WM_SHOWWINDOW ) {
        if ( wparam ) 
            // Stuff
        else
            // Stuff 
    } else if ( message == WM_CLOSE ) {
        // Stuff
    }

    return (true);
}
哎呀


避免这种情况的一个好方法是使用
const

把它随意地洒在代码上


在实际可行的地方做。

狗娘养的!!!好电话,我的朋友。我明白你对康斯特的看法了。。。说得好。或者你可以用“尤达”这个成语写
WM\u SHOWWINDOW==message
message = WM_SHOWWINDOW