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

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
}



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值