【远控编写01】客户端界面的设计和编写--对话框,列表控件的伸缩

来源:互联网 发布:淘宝网店如何引流 编辑:程序博客网 时间:2024/05/17 00:51

1.新建一个MFC工程,工程属性配置如下:

 

2.添加最大化窗口和最小化窗口的属性.
3.更改对话框到合适的大小.
4.添加服务端连接后显示的列表控件IDC_ONLINE,日志列表控件IDC_MESSAGE.
5.演示伸缩窗口,最大化时列表不能伸缩
6.添加列表控件变量m_CList_Online,m_CList_Message
7.响应对话框改变大小的消息WM_SIZE就是 当对话框的大小发生改变时,调用的函数.

[cpp] view plaincopy
  1. void CPCRemoteDlg::OnSize(UINT nType, int cx, int cy)  
  2. {  
  3.     CDialogEx::OnSize(nType, cx, cy);  
  4.   
  5.     // TODO: 在此处添加消息处理程序代码  
  6.   
  7.         if (m_CList_Online.m_hWnd!=NULL)  
  8.     {  
  9.         CRect rc;  
  10.         rc.left=1;          //列表的左坐标  
  11.         rc.top=80;          //列表的上坐标  
  12.         rc.right=cx-1;      //列表的右坐标  
  13.         rc.bottom=cy-160;   //列表的下坐标  
  14.         m_CList_Online.MoveWindow(rc);  
  15.     }  
  16.     if (m_CList_Message.m_hWnd!=NULL)  
  17.     {  
  18.         CRect rc;  
  19.         rc.left=1;          //列表的左坐标  
  20.         rc.top=cy-156;      //列表的上坐标  
  21.         rc.right=cx-1;      //列表的右坐标  
  22.         rc.bottom=cy-6;     //列表的下坐标  
  23.         m_CList_Message.MoveWindow(rc);  
  24.     }  
  25. }  


 

8.修改初始化部分,设置对话框尺寸,触发WM_SIZE消息,调节列表控件的位置:

[cpp] view plaincopy
  1. BOOL CPCRemoteDlg::OnInitDialog()  
  2. {  
  3.     CDialogEx::OnInitDialog();  
  4.   
  5.     // 将“关于...”菜单项添加到系统菜单中。  
  6.   
  7.     // IDM_ABOUTBOX 必须在系统命令范围内。  
  8.     ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);  
  9.     ASSERT(IDM_ABOUTBOX < 0xF000);  
  10.   
  11.     CMenu* pSysMenu = GetSystemMenu(FALSE);  
  12.     if (pSysMenu != NULL)  
  13.     {  
  14.         BOOL bNameValid;  
  15.         CString strAboutMenu;  
  16.         bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);  
  17.         ASSERT(bNameValid);  
  18.         if (!strAboutMenu.IsEmpty())  
  19.         {  
  20.             pSysMenu->AppendMenu(MF_SEPARATOR);  
  21.             pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);  
  22.         }  
  23.     }  
  24.   
  25.     // 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动  
  26.     //  执行此操作  
  27.     SetIcon(m_hIcon, TRUE);     // 设置大图标  
  28.     SetIcon(m_hIcon, FALSE);        // 设置小图标  
  29.   
  30.     // TODO: 在此添加额外的初始化代码  
  31.     // 初始化在线列表的List控件。  
  32.   
  33.     // 修改对话框的大小,出发WM_SIZE消息,重新调整对话框中列表控件的界面显示比例.  
  34.         CRect rect;  
  35.     GetWindowRect(&rect);  
  36.     rect.bottom+=20;  
  37.     MoveWindow(rect);  
  38.   
  39.     return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE  
  40. }  
0 0
原创粉丝点击