在一个基于FormView的工程中,弹出了一个非模态对话框(具有POPUP属性),在其上通过一个
CheckBox控制其高矮,代码如下:
void CMaringMainDlg::OnDisplayCheckFun() 
{
// TODO: Add your control notification handler code here int show = SW_SHOW;
int check = ((CButton*)GetDlgItem(IDC_DISPLAYFUN))->GetCheck(); UCHAR tmp;
CRect rect;
GetWindowRect(&rect); if(BST_UNCHECKED == check){//变矮
if(IsZoomed()){
ShowWindow(SW_SHOWNORMAL);
}
GetWindowRect(&rect);
rect.bottom = SMALLDIALOG_HEIGHT;//矮的窗口高度
tmp = PARAMETERWND_HIDE;
show = SW_HIDE;
}else if(BST_CHECKED == check){//变高
if(IsZoomed() == 0){//最大化,则不变
rect.bottom = rect.top + LARGEDIALOG_HEIGHT;//高的窗口高度
}
tmp = PARAMETERWND_SHOW;
}else{
return ;
}  MoveWindow( &rect );
}
通常情况下,这个非模态对话框的高矮都正常,当非模态对话框某一部分在屏幕下方(不可见)的时候,窗口的高度变小了,使得某些控件不可见了,怀疑是屏幕坐标和客户坐标转换的问题,但试验了几次都不见效果,求助。