vc中对话框最小化后控件还原
我在vc下做了个对话框程序~上面的控件我最小化后再打开结果不见了~谁知道这个怎么弄啊~有什么函数~我定义一个CRect的对象保存控件的客户区大小~再赋值怎么有问题啊,结果...
我在vc下做了个对话框程序~上面的控件我最小化后再打开结果不见了~谁知道这个怎么弄啊~有什么函数~我定义一个CRect的对象保存控件的客户区大小~再赋值怎么有问题啊,结果就是控件缩小变不回来了~下面是我的onsize函数
CWnd *hnd1;
if(rc.Width())
ctcp2= rc;
if(!rc.Width())
rc= ctcp2;
hnd1= GetDlgItem(IDC_PLAYER);
if(hnd1){
CRect ct1;
hnd1->GetWindowRect(&ct1);
if(ct1.Width())
ctcp1= ct1;
if(!ct1.Width()){
ScreenToClient(&ct1);
ScreenToClient(&ctcp1);
ct1.left=ctcp1.left;
ct1.right=ctcp1.right;
ct1.top=ctcp1.top;
ct1.bottom=ctcp1.top;
hnd1->MoveWindow(&ct1);
}
else{
ScreenToClient(&ct1); //将控件大小转换为在对话框中的区域坐标
// cx/rc.Width()为对话框在横向的变化比例
ct1.left=ct1.left*cx/rc.Width();//调整控件大小
ct1.right=ct1.right*cx/rc.Width();
ct1.top=ct1.top*cy/rc.Height();
ct1.bottom=ct1.bottom*cy/rc.Height();
hnd1->MoveWindow(&ct1);
}
}
GetClientRect(&rc);
}
求问怎么改啊 展开
CWnd *hnd1;
if(rc.Width())
ctcp2= rc;
if(!rc.Width())
rc= ctcp2;
hnd1= GetDlgItem(IDC_PLAYER);
if(hnd1){
CRect ct1;
hnd1->GetWindowRect(&ct1);
if(ct1.Width())
ctcp1= ct1;
if(!ct1.Width()){
ScreenToClient(&ct1);
ScreenToClient(&ctcp1);
ct1.left=ctcp1.left;
ct1.right=ctcp1.right;
ct1.top=ctcp1.top;
ct1.bottom=ctcp1.top;
hnd1->MoveWindow(&ct1);
}
else{
ScreenToClient(&ct1); //将控件大小转换为在对话框中的区域坐标
// cx/rc.Width()为对话框在横向的变化比例
ct1.left=ct1.left*cx/rc.Width();//调整控件大小
ct1.right=ct1.right*cx/rc.Width();
ct1.top=ct1.top*cy/rc.Height();
ct1.bottom=ct1.bottom*cy/rc.Height();
hnd1->MoveWindow(&ct1);
}
}
GetClientRect(&rc);
}
求问怎么改啊 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询