如何动态设置控件大小和位置?
为什么资源文件中设置的控件(PICTURE CONTROL)大小与用GetClientRect得到得不一样?
两者之间得换算关系如何得到啊?
问题点数:0、回复次数:8Top
1 楼kdbangbang(kdbangbang)回复于 2004-05-04 18:22:36 得分 0
设置控件大小可以用movewindow
Top
2 楼ringerxyz()回复于 2004-05-04 19:15:54 得分 0
下面的代码楼主可以参考一下:我是在OnSize()中处理的
CDialog::OnSize(nType, cx, cy);
CRect rect,rect1;
this->GetWindowRect(&rect1);
this->ScreenToClient(&rect1);
if(!::GetWindowRect(m_listTextInfo.m_hWnd,&rect))
{
return;
}
this->ScreenToClient(&rect);
rect.bottom=rect1.bottom;
rect.right=rect1.right;
this->m_listTextInfo.MoveWindow(&rect);Top
3 楼anufa(阿羽)回复于 2004-05-04 19:53:19 得分 0
处理WM_SIZE消息:(参考如下代码)
void COwnBasicInfoView::OnSize(UINT nType, int cx, int cy)
{
CFormView::OnSize(nType, cx, cy);
// TODO: Add your message handler code here
if(m_DepartmentList.GetSafeHwnd())
{
CRect rect;
GetClientRect(&rect);
m_DepartmentList.SetWindowPos(this,rect.left+2,rect.top+1,150,rect.bottom-rect.top-10,SWP_SHOWWINDOW|SWP_NOZORDER);
}
}Top
4 楼zhangnanonnet(鱼欢)回复于 2004-05-04 21:08:07 得分 0
movewindow()Top
5 楼countryboy(沉淀)回复于 2004-05-05 03:58:59 得分 0
学习~~~!!!!Top
6 楼lyanh()回复于 2004-05-05 10:17:10 得分 0
upTop
7 楼lyanh()回复于 2004-05-05 15:15:12 得分 0
对话框模板的单位不是图素。它们实际上依据一种特殊的座标系统,该系统只用于对对话框模板。数字依据对话框使用字体的大小而定:x座标和宽度的单位是字符平均宽度的1/4;y座标和高度的单位是字符高度的1/8。Top
8 楼DWDLL(不跟利索)回复于 2004-06-24 17:53:48 得分 0
其实很简单 根据 主窗体改变的大小来设置 小窗体(控件)
用SetWindowPos把变大小不会闪烁 还有就是 位置可以不设置用SWP_NOMOVE那么相对应的就用
GetClientRectTop




