数学博士生课程:如何设置窗口的客户区大小?
来源:百度文库 编辑:查人人中国名人网 时间:2024/10/08 11:40:39
可以调用SetWindowPos函数设置窗口的大小,但是如果想设置窗口的客户区为指定大小,应该用什么方法.
要得到非客户区的大小是很麻烦的,边框的大小,标题栏的大小.这些并不是固定值,和窗口风格也有关系.
--------------------------------------------------
应该用AdjustWindowRectEx
要得到非客户区的大小是很麻烦的,边框的大小,标题栏的大小.这些并不是固定值,和窗口风格也有关系.
--------------------------------------------------
应该用AdjustWindowRectEx
先得到非客户区大小再加上你要的客户区大小再用SetWindowPos就不可以了么?
CDC memDC;
memDC.CreateCompatibleDC(pDC);
CBitmap bm;
BITMAP bmInfo;
if(bm.LoadBitmap(IDB_BITMAP3))//添加一副位图资源文件
{ bm.GetBitmap(&bmInfo);
memDC.SelectObject(&bm);
pDC->BitBlt(0,0,bmInfo.bmWidth,bmInfo.bmHeight,&memDC,0,0,NOTSRCCOPY);
}
else
{
MessageBox("装载位图失败!");
}
CRect rtWin,rtClt;
//父窗口大小
this->GetParentFrame()->GetWindowRect(&rtWin);
//视图Client客户区大小
GetClientRect(&rtClt);
this->GetParentFrame()->SetWindowPos(NULL,0,0,
rtWin.Width()-rtClt.Width()+bmInfo.bmWidth,
rtWin.Height()-rtClt.Height()+bmInfo.bmHeight,SWP_NOMOVE |SWP_NOZORDER);
this->GetParentFrame()->CenterWindow();
如上在OnDraw
函数中加入运行即可