Visual C++6.0 绘制标题栏

本文介绍了MFC绘图技术中的关键概念与方法,包括CDC类的使用,如何创建兼容设备环境,选择位图对象,以及如何进行位图的拉伸绘制等。通过具体实例展示了如何利用这些技术实现标题栏的绘制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    CDC类定义设备环境对象类,其对象提供操作设备环境(如显示器或打印机)的成员函数,以及操作与窗口客户区向关的显示描述表的成

员函数。

         CDC::CreateCompatibleDC

           virtual BOOL CreateCompatibleDC(CDC* pDC);

           返回值:成功,则返回非0值,否则返回0。

           参数:pDC 设备环境指针,若为NULL,则该函数创建一个与系统显示兼容的内存设备环境。

           说明:创建一个与pDC指定的只支持光栅操作的设备兼容的内存设备环境。

       CDC::SelectObject

          CBitmap*SelectObject(CBitmap* pBitmap);

          返回值:被替代对象的一个指针。若错误,则返回NULL。

          参数:pBitmap 指向一个要选择CBitmap对象的指针。

          说明:将一个对象选入设备环境,新选对象将替代同一类型的先前对象。

     CDC::StretchBlt

        BOOL StretchBlt(int x,int y,int nWidth,int nHeight,CDC* pSrcDC,int xSrc,int ySrc,int nSrcWidth,int nSrcHeight,DWORD dwRop );

       返回值:若位图绘制成功,则返回非0值,否则返回0。

       参数:x,目标矩形左上角的逻辑x坐标。

                  y,目标矩形左上角的逻辑y坐标。

                 nWidth,目标矩形的逻辑宽度。

                nHeight,目标矩形的逻辑高度。

                 pSrcDC,指定原设备环境。

                  XSrc  ,原矩形左上角的逻辑x坐标。

                 dwRop,指定要执行的光栅操作,.SRCCOPY 将源位图拷贝到目标位图。

                说明:将位图从源矩形拷贝到目标矩形中,并按需要拉伸或压缩位图使其适应目标矩形的大小。

CBitmap类:封装Windowde 图形设备接口(GDI)位图,提供管理位图的成员函数。要使用该对象,首先要构造该对象,然后通过初始化

成员函数连接位图句柄到该对象,最后调用该对象的成员函数。

#include<afxwin.h>

         CBitmap::LoadBitmap

             BOOL LoadBitmap(UINT nIDResource);

             返回值:若成功,则返回非0,否则返回0.

            参数: nIDResource 位图资源ID号。

            说明:从可执行文件加载位图资源,由nIDResouce中ID号标识,加载后连接到CBitmap对象,若无法加载,则返回0。

BOOL CLandingDlg::DrawTitleBar(CWindowDC &dc) //绘制标题栏
{
    CDC memDC;
    BITMAP bm;
   memDC.CreateCompatibleDC ((CDC*)&dc); //创建兼容DC
   memDC.SelectObject (&m_Title); //把标题栏位图选入DC
   m_Title.GetObject (sizeof(bm),&bm); //得到位图信息
  dc.StretchBlt (3,1,bm.bmWidth ,bm.bmHeight ,&memDC,0,0,bm.bmWidth ,bm.bmHeight ,SRCCOPY);//绘制标题栏
  memDC.DeleteDC (); //用完删除兼容DC
  return TRUE;
}



   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值