如何设置窗口的客户区大小

如何设置窗口的客户区大小,第1张

        CDC memDC;

    memDCCreateCompatibleDC(pDC);

    CBitmap bm;

    BITMAP bmInfo;

    if(bmLoadBitmap(IDB_BITMAP3))//添加一副位图资源文件

    {   bmGetBitmap(&bmInfo);

    memDCSelectObject(&bm);

    pDC->BitBlt(0,0,bmInfobmWidth,bmInfobmHeight,&memDC,0,0,NOTSRCCOPY);

    }

    else

    {

        MessageBox("装载位图失败!");

    }

CRect rtWin,rtClt;

    //父窗口大小

    this->GetParentFrame()->GetWindowRect(&rtWin);

    //视图Client客户大小        

    GetClientRect(&rtClt);

    this->GetParentFrame()->SetWindowPos(NULL,0,0,

        rtWinWidth()-rtCltWidth()+bmInfobmWidth,

        rtWinHeight()-rtCltHeight()+bmInfobmHeight,SWP_NOMOVE |SWP_NOZORDER);

    this->GetParentFrame()->CenterWindow();

如上在OnDraw

函数中加入运行即可

用 GetWindowRect 得到的是包括非客户区的矩形(非客户区含上边条,下边条,左边条,右边条,非客户区左边的左顶点,非客户区右边的右顶点,左下角的左下角顶点,右下角的右下角顶点,和客户区)。GetClientRect得到的仅是客户区的矩形。桌面上可供应用程序使用的区域是,除出系统占用区之外的应用程序可用区,系统占用的包括任务栏所占用的部分,应用程序要用WS_EX_TPMOST属性才可以扩展到这部分区域,应用程序可用区,可以用getsystemmetrics函数来查询,具体可以参考:《WIN32程序员参考大全》全书共五册,最好是下载有目录的那个PDF版。CSDN中去下载,注意下有目录的。关于窗口的一般内容其中都有,要 *** 作和绘制非客户区,就要搜索百度,关键字一般可以是:VC 自绘 非客户区 标题栏等。

GetWindowRect获取的是整个窗口的值,GetClientRect获取的是窗口客户区(记事本里空白的地方就是客户区了,供用户编辑用的地方)估计你是用前面的函数获取窗口的大小,然后用它来设置客户区的大小,窗口当然会变大了。

以上就是关于如何设置窗口的客户区大小全部的内容,包括:如何设置窗口的客户区大小、VC编程中遇到的窗口大小和窗口客户区大小的问题、c中api怎么获取当前整个窗口大小等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9868817.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存