为何计算出的客户区的大小总是差点儿?

rockhard 2004-02-19 10:04:20
我在主窗口中显示一图片,要客户区的大小正好与图片一样,但计算出来的大小总是小点儿了,代码如下:

hBackGround=LoadBitmap(hInstance,"BACKMAP");
//计算标题栏和边框的宽度和高度
int nBorderWeight = GetSystemMetrics(SM_CXBORDER);
int nBorderHeight = GetSystemMetrics(SM_CYBORDER);
int captionHeight = GetSystemMetrics(SM_CYCAPTION);

BITMAP bmp;
GetObject(hBackGround,sizeof(BITMAP),&bmp);//得到的位图大小对

WNDCLASSEX wcex;
...
wcex.lpszMenuName=NULL;
...
wcex.style=CS_HREDRAW|CS_VREDRAW;

if(!RegisterClassEx(&wcex))
return false;
HWND hWnd=CreateWindow(szClassName,
szTitle, WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT,
bmp.bmWidth+nBorderWeight*2, //算的不对??????
bmp.bmHeight+captionHeight+nBorderHeight*2,//算的不对??????
NULL,
NULL,
hInstance,
NULL);

if(!hWnd)
return 0;

ShowWindow(hWnd,nShowCmd);
UpdateWindow(hWnd);

MSG message;

while(GetMessage(&message,NULL,NULL,NULL) )
{
TranslateMessage(&message);
DispatchMessage(&message);
}
return message.wParam;

请问是不是少计算了某部分
...全文
53 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧