void CXTest2Dlg::OnSize(UINT nType, int cx, int cy)
{
CDialog::OnSize(nType, cx, cy);
// TODO: 在此处添加消息处理程序代码
//将窗口移动到合适位置和大小
CRect rc,rc0,rc1;
GetClientRect(&rc0);//先取得整个对话框的大小及位置
//设置Tab控件位置
rc1top=rc0top;
rc1left=rc0left+1;
rc1bottom=rc0bottom-30;
rc1right=rc0right-1;
if(GetDlgItem(IDC_TAB1)!=NULL)
{
GetDlgItem(IDC_TAB1)->MoveWindow(&rc1);
}
//设置时钟位置
rc1top=rc0bottom-20;
rc1left=rc0left+5;
rc1bottom=rc0bottom;
rc1right=rc0left+160;
if(GetDlgItem(IDC_CLOCKTEST)!=NULL)
{
GetDlgItem(IDC_CLOCKTEST)->MoveWindow(&rc1);
}
//设置关闭按钮位置
rc1top=rc1top-5;
rc1left=rc0right-200;
rc1bottom=rc1bottom;
rc1right=rc0right-120;
if(GetDlgItem(IDOK)!=NULL)
{
GetDlgItem(IDOK)->MoveWindow(&rc1);
}
//设置取消按钮位置
rc1left=rc0right-100;
rc1right=rc0right-20;
if(GetDlgItem(IDCANCEL)!=NULL)
{
GetDlgItem(IDCANCEL)->MoveWindow(&rc1);
}
//将三个对话框资源定位到Tab控件中
if(GetDlgItem(IDC_TAB1)!=NULL)
{
GetDlgItem(IDC_TAB1)->GetClientRect(&rc);
rc1top=rctop+20;
rc1left=rcleft+1;
rc1bottom=rcbottom-10;
rc1right=rcright-1;
tab1GetClientRect(&rc1);
tab1GetDlgItem(IDC_MSGINFO)->MoveWindow(&rc1);//移动第一个
rc1bottom=rcbottom-35;//第二个及第三个底部留出按钮位置
tab2GetDlgItem(IDC_BNSLIST)->MoveWindow(&rc1);
tab3GetDlgItem(IDC_MSGERRINFO)->MoveWindow(&rc1);
它是1978年由 Niklaus Wirth 在 ETH 创立的通用过程式语言。它与 Pascal 类似,具有系统编程和多重编程功能。
使用 Cwnd::MoveWindow(int x, int y, int w, int h, int rep = 1)
这个方法
首先获取到当前窗口的x y坐标
然后调用 MoveWindow() 即可
以上就是关于MFC Activex控件设置对话框自动跟随控件大小和位置,为什么用GetClientRect获取不到对话框大小呢全部的内容,包括:MFC Activex控件设置对话框自动跟随控件大小和位置,为什么用GetClientRect获取不到对话框大小呢、MFC中,如何动态改变窗口大小(通过传递高和长的值)注意是主窗口!、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)