1.新建一个MFC工程,工程属性配置如下:
2.添加最大化窗口和最小化窗口的属性.
3.更改对话框到合适的大小.
4.添加服务端连接后显示的列表控件IDC_ONLINE,日志列表控件IDC_MESSAGE.
5.演示伸缩窗口,最大化时列表不能伸缩
6.添加列表控件变量m_CList_Online,m_CList_Message
7.响应对话框改变大小的消息WM_SIZE就是 当对话框的大小发生改变时,调用的函数.
- void CPCRemoteDlg::OnSize(UINT nType, int cx, int cy)
- {
- CDialogEx::OnSize(nType, cx, cy);
- // TODO: 在此处添加消息处理程序代码
- if (m_CList_Online.m_hWnd!=NULL)
- {
- CRect rc;
- rc.left=1; //列表的左坐标
- rc.top=80; //列表的上坐标
- rc.right=cx-1; //列表的右坐标
- rc.bottom=cy-160; //列表的下坐标
- m_CList_Online.MoveWindow(rc);
- }
- if (m_CList_Message.m_hWnd!=NULL)
- {
- CRect rc;
- rc.left=1; //列表的左坐标
- rc.top=cy-156; //列表的上坐标
- rc.right=cx-1; //列表的右坐标
- rc.bottom=cy-6; //列表的下坐标
- m_CList_Message.MoveWindow(rc);
- }
- }
8.修改初始化部分,设置对话框尺寸,触发WM_SIZE消息,调节列表控件的位置:
- BOOL CPCRemoteDlg::OnInitDialog()
- {
- CDialogEx::OnInitDialog();
- // 将“关于...”菜单项添加到系统菜单中。
- // IDM_ABOUTBOX 必须在系统命令范围内。
- ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
- ASSERT(IDM_ABOUTBOX < 0xF000);
- CMenu* pSysMenu = GetSystemMenu(FALSE);
- if (pSysMenu != NULL)
- {
- BOOL bNameValid;
- CString strAboutMenu;
- bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);
- ASSERT(bNameValid);
- if (!strAboutMenu.IsEmpty())
- {
- pSysMenu->AppendMenu(MF_SEPARATOR);
- pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
- }
- }
- // 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
- // 执行此操作
- SetIcon(m_hIcon, TRUE); // 设置大图标
- SetIcon(m_hIcon, FALSE); // 设置小图标
- // TODO: 在此添加额外的初始化代码
- // 初始化在线列表的List控件。
- // 修改对话框的大小,出发WM_SIZE消息,重新调整对话框中列表控件的界面显示比例.
- CRect rect;
- GetWindowRect(&rect);
- rect.bottom+=20;
- MoveWindow(rect);
- return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
- }