开发者社区> 问答> 正文

求教大神!C++中窗口最大化问题

在C++win32项目中(不是MFC),一个窗口最大化时,怎么让窗口里面的控件也跟着适应布局?控件的大小不用改变,只要控件的位置可以调整得和谐点,比如:最大化、最小化、关闭按钮还是在窗口的右上角

展开
收起
a123456678 2016-03-05 13:29:41 2741 0
1 条回答
写回答
取消 提交回答
  • 响应wm_size消息,在里面得到窗口大小,用movewindow函数调整控件大小。Windows 窗体的标准消息,Win32 与 MFC 是一样的。
    在 Win32 程序的 WndProc 程序中增加对:WM_SIZE 的处理就可以的。

     LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
        switch (message) 
         {
             // The code for handling other Windows messages has been omitted for clarity.
             // ...
            case WM_SIZE:
                {
                    INT nWidth = LOWORD(lParam);
                    HWND hEditBox = GetDlgItem(hWnd, IDC_EDIT);
                    HWND hEnterButton = GetDlgItem(hWnd, IDC_BUTTON);
    
                    MoveWindow(hEditBox, 8, 4, nWidth - 70, 20, TRUE);
                    MoveWindow(hEnterButton, nWidth - 57, 4, 50, 20, TRUE);
                }
                break;
        }
    }
    2019-07-17 18:53:16
    赞同 展开评论 打赏
问答分类:
C++
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
使用C++11开发PHP7扩展 立即下载
GPON Class C++ SFP O;T Transce 立即下载
GPON Class C++ SFP OLT Transce 立即下载