在C++win32项目中(不是MFC),一个窗口最大化时,怎么让窗口里面的控件也跟着适应布局?控件的大小不用改变,只要控件的位置可以调整得和谐点,比如:最大化、最小化、关闭按钮还是在窗口的右上角
响应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;
}
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。