x:setwindowpos(this-&gt,hwnd_bottom,x:,y,swp_nozorder),y为对话框左上角的坐标
wm_hwnd:
,h为对话框的宽高
如果定位后需要居中显示对话框,h
使用SetWindowPos对话框OnInitDialog时候,set一个小点的大小,保证显示不出你的编辑框位置。
线程开启后,set一个大点的打小,可以显示出你编辑框的位置。
例子:
你建立一个dialog的mfc程序,在OnInitDialog里面写入SetWindowPos(NULL,10,100,500,100,0)在OnOK里面写入SetWindowPos(NULL,10,100,500,200,0)
运行下,点击确定,就可以看到效果了。
testDlg::OnSize(UINT nType, int cx, int cy){
CDialog::OnSize(nType, cx, cy)
// TODO: 在此处添加消息处理程序代码
static RECT LastWindowRect = //用来保存窗口上一次的大小
CWnd *hWin//构造一个句柄
int ux = cx - LastWindowRect.right
//求出窗口的水平变化量
int uy = cy - LastWindowRect.bottom
//求出窗口的竖直变化量
if((hWin = GetDlgItem(IDC_PPP)) != NULL) //IDC_LIST1为控件的ID号
{
RECT rect
hWin->GetWindowRect(&rect)//获得控件的大小
ScreenToClient(&rect)//设备到客户
rect.right += ux//
rect.bottom += uy
hWin->MoveWindow(&rect)//改变控件大小
}
LastWindowRect.right = cx
LastWindowRect.bottom = cy
}
另外,站长团上有产品团购,便宜有保证
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)