VC MFC 让窗口、控件随着主窗口大小改变而改变

来源:互联网 发布:淘宝店铺引流 编辑:程序博客网 时间:2024/05/16 06:29
其实要改变控件或者窗口的大小,最好就在WM_SIZE消息响应函数中利用CWnd的成员函数MoveWindow。
如果在程序运行的时候改变主窗口的大小,这时候会产生一个WM_ONSIZE消息传递给主线程,要想在主窗口大小改变的时候也同时改变控件的大小,这时候只要在 CMyDlg(这个类是编译器自动生成的,名字中间的字母跟你工程名字一样)这个类添加消息响应函数WM_WIZE。函数如下:
void CWMPPlayerDlg::OnSize(UINT nType, int cx, int cy)
{
CDialog::OnSize(nType, cx, cy);

// TODO: Add your message handler code here
}

在“// TODO: Add your message handler code here"
这一行下面添加以下代码(这里假设你的要改变的控件的变量名是abc):
if(abc.GetSafeHwnd())
abc.MoveWindow(0,0,cx,cy);

结果在OnSize函数中总的代码就是:
void CWMPPlayerDlg::OnSize(UINT nType, int cx, int cy)
{
CDialog::OnSize(nType, cx, cy);

// TODO: Add your message handler code here
if(abc.GetSafeHwnd())
abc.MoveWindow(0,0,cx,cy);
}
0 0