孟氏拔罐擦剂的妙用:如何设置窗口的客户区大小?

来源:百度文库 编辑:神马品牌网 时间:2024/05/09 04:10:04
可以调用SetWindowPos函数设置窗口的大小,但是如果想设置窗口的客户区为指定大小,应该用什么方法.
要得到非客户区的大小是很麻烦的,边框的大小,标题栏的大小.这些并不是固定值,和窗口风格也有关系.
--------------------------------------------------
应该用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

函数中加入运行即可