凉飕飕 发表于 2016-7-29 15:06:24

怎么响应对话框 中的最大化最小化消息呢????

我使用DialgBox 函数创建的对话框,在初始化中改变对话框风格,添加最大化最小化,但是不知道怎么响应,代码如下:
INT_PTR CALLBACK DialogProc(_In_ HWND   hwndDlg, _In_ UINT   uMsg, _In_ WPARAM wParam, _In_ LPARAM lParam)
{
        switch (uMsg)
        {
        case WM_INITDIALOG:
        {
                SetWindowLong(hwndDlg, GWL_STYLE, WS_OVERLAPPED |WS_CAPTION |         WS_SYSMENU |
                        WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX);

                break;
        }
        case WM_COMMAND:
        {
                WORD wId = LOWORD(wParam);
                if (wId == IDM_EXIT)
             {
             PostQuitMessage(0);
             }
                return (INT_PTR)TRUE;
        }
        case WM_CLOSE: PostQuitMessage(0); return (INT_PTR)TRUE;
        }
        return (INT_PTR)FALSE;
}

无符号整形 发表于 2016-7-29 16:50:35

你试一下,这样行不?

BOOL CALLBACK DialogProc(HWND   hwndDlg, UINT   uMsg, WPARAM wParam,LPARAM lParam)
{
         switch (uMsg)
         {
         case WM_INITDIALOG:
               SetWindowLong(hwndDlg, GWL_STYLE, WS_OVERLAPPED |WS_CAPTION |         WS_SYSMENU |
                         WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX);

               break;
         case WM_COMMAND:
               WORD wId = LOWORD(wParam);
               if (wId == IDM_EXIT)
               {
                      PostQuitMessage(0);
                  }
               return (INT_PTR)TRUE;
         case WM_CLOSE: PostQuitMessage(0); return (INT_PTR)TRUE;
         case WM_SYSCOMMAND:
            switch(wParam)
            {
                     caseSC_MAXIMIZE:
                            ShowWindow(SW_SHOWMINIMIZED);
                     case SC_MINIMIZE:
                            ShowWindow(SW_SHOWMAXIMIZED);
               }
         }
         return (INT_PTR)FALSE;
}







凉飕飕 发表于 2016-7-30 11:26:31

无符号整形 发表于 2016-7-29 16:50
你试一下,这样行不?

不行啊{:10_266:}

无符号整形 发表于 2016-7-30 12:23:45

凉飕飕 发表于 2016-7-30 11:26
不行啊

唉,那么我也没办法了。。。
别用对话框了,用窗口吧

无符号整形 发表于 2016-7-30 16:33:03

凉飕飕 发表于 2016-7-30 11:26
不行啊

这样行不?

BOOL CALLBACK DialogProc(HWND   hwndDlg, UINT   uMsg, WPARAM wParam,LPARAM lParam)
{
         switch (uMsg)
         {
         case WM_INITDIALOG:
               SetWindowLong(hwndDlg, GWL_STYLE, WS_OVERLAPPED |WS_CAPTION |         WS_SYSMENU |
                         WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX);

               break;
         case WM_COMMAND:
               WORD wId = LOWORD(wParam);
               if (wId == IDM_EXIT)
               {
                      PostQuitMessage(0);
                  }
               return (INT_PTR)TRUE;
         case WM_CLOSE: PostQuitMessage(0); return (INT_PTR)TRUE;
         }
         return (INT)DefWindowProc(hwndDlg,uMsg,wParam,lParam);
}
PS:实在想不出来了。。。

凉飕飕 发表于 2016-8-2 08:34:11

没事,谢谢啊{:7_139:}
页: [1]
查看完整版本: 怎么响应对话框 中的最大化最小化消息呢????