本文共 2072 字,大约阅读时间需要 6 分钟。
1、不用说,首先隐射OnSize事件,然后在该事件中编写代码
2、这里要注意一个问题,那就是当窗口首次打开的时候,窗口上的空间事实上还没有创建,这个时候如果尝试移动控件位置将会出现错误,最常用的办法是使用GetSafeHwnd来判断控件窗口句柄是否存在,如果不存在就表示还没有创建,而且在窗口打开的时候只要判断一个就可以了
3、使用CRect 来处理控件的大小位置
我的代码处理:
// TODO: Add your message handler code here
CRect rectClient; CRect rectEdit; int iButtonWidth,iButtonHeight; //光判断信息窗口是否已经创建 if (IsWindow(GetDlgItem(IDC_EDIT_INFO)->GetSafeHwnd())) { GetClientRect(&rectClient); //设置 启动按钮 GetDlgItem(IDC_BUTTON_START)->GetClientRect(&rectEdit); iButtonWidth = rectEdit.Width(); iButtonHeight = rectEdit.Height(); rectEdit.top = rectClient.bottom - 10 - rectEdit.Height(); rectEdit.bottom = rectClient.bottom - 10; rectEdit.right = 10 + rectEdit.Width(); rectEdit.left = 10; GetDlgItem(IDC_BUTTON_START)->MoveWindow(rectEdit,TRUE); //设置 停止按钮 rectEdit.left = rectEdit.right + 10; rectEdit.right = rectEdit.right + rectEdit.right; GetDlgItem(IDC_BUTTON_STOP)->MoveWindow(rectEdit,TRUE); //设置 清除日志 rectEdit.left = rectEdit.right + 10; rectEdit.right = rectEdit.right + iButtonWidth; GetDlgItem(IDC_BUTTON_CLEAR_INFO)->MoveWindow(rectEdit,TRUE); //设置取消 右边重新计算 rectEdit.left = rectClient.right - 10 - iButtonWidth; rectEdit.right = rectClient.right - 10; GetDlgItem(IDCANCEL)->MoveWindow(rectEdit,TRUE); //设置 设置按钮 rectEdit.left = rectClient.right - 10 - iButtonWidth - iButtonWidth - 50; rectEdit.right = rectEdit.left + iButtonWidth; GetDlgItem(IDC_BUTTON_GATEWAY_SETUP)->MoveWindow(rectEdit,TRUE); //设置信息窗口 GetDlgItem(IDC_EDIT_INFO)->GetClientRect(&rectEdit); rectEdit.left = 10; rectEdit.right = rectClient.right - 10; rectEdit.top = 10; rectEdit.bottom = rectClient.bottom - 10 - iButtonHeight - 10; GetDlgItem(IDC_EDIT_INFO)->MoveWindow(rectEdit,TRUE); //设置发送测试信息 GetDlgItem(IDC_BUTTON_SEND_TEST)->GetClientRect(&rectEdit); iButtonWidth = rectEdit.Width(); iButtonHeight = rectEdit.Height(); rectEdit.left = (rectClient.Width() - iButtonWidth ) / 2; rectEdit.right = rectEdit.left + iButtonWidth; rectEdit.bottom = rectClient.bottom - 10; rectEdit.top = rectEdit.bottom - iButtonHeight; GetDlgItem(IDC_BUTTON_SEND_TEST)->MoveWindow(rectEdit,TRUE); }转载地址:http://xkwni.baihongyu.com/