⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 04.3.2 位图画刷.txt

📁 网上第一本以TXT格式的VC++深入详解孙鑫的书.全文全以TXT格式,并每一章节都分了目录,清晰易读
💻 TXT
字号:
4.3.2  位图画刷  

CBrush类有下面这样一种构造函数。 

CBrush( CBitrnap* pBitrnap ); . 
该构造函数要求一个 CBitmap类型的指针, CBitmap类是位图类,于是我们就会这样想:利用这个构造函数是否就可以创建一个位图画刷呢?事实确实如此。
创建 CBitmap对象时,仅调用其构造函数并不能得到一个有用的位图对象,还需要调用一个初始化函数来初始化这个位图对象。 CBitmap类提供多个初始化函数,例如, LoadBitmap、 CreateBitmap、 CreateBitmapIndirect等。本例使用 LoadBitmap函数来加载一幅位图,该函数的声明如下。 
BOOL LoadBitrnap( LPCTSTR lpszResourceNarne ); BOOL LoadBitrnap( U工 NT n工 DResource ); 
其中第二种声明需要一个资源E作为参数。首先需要给 Draw程序增加一个位图资源。


"‘ I 123 

单鳝国
为一个工程创建资源有多种实现方法,其中一种方法可以利用【Insert】菜单下的 <Resource..】命令,此时会弹出如图4.19所示的插入资源对话框。
图 4.19 Insert Resource对话框

选择Bitmap资源类型,单击【New】按钮,即可创建一个默认名称为IDB_BITMA凹的位图资源,井在VC++集成开发环境右边的代码编辑区中打开位图编辑器,如图4.20所示。可以利用编辑器右边的调色板和绘图工具来编辑位图资源,还可以通过拉伸位图编辑器中网格周围的蓝色方点来调整位图的大小。本例创建了一个如图4.21所示的位图资源,读者可以根据自己的需要创建任意形式的位图。 

图4.20位图资源编辑器图4.21本例使用的位图资源
另一种创建资源的方法是,利用工具栏上的资源工具栏按钮(如图4.22所示)来实现。该工具栏在默认情况下并没有显示,可以在VC++开发环境中的工具栏上任意位置单击鼠标右键,从弹出的快捷菜单中选择Resource(如图 4.23所示),这时,在 VC++开发环境中就会出现如图4.22所示的资源工具栏。
创建了位图资源之后,就可以利用代码来创建位图画刷了,具体的实现代码如例4-16所示。
图 4.22资源工具栏	图 4.23显示资源工具栏的操作
例4-16 
void CDrawView : :OnLButtonUp(U工NT nFlags , CPoint po工nt} { / /创建位图对象 
CBitmap bitmap; 
//加载位图资源 
bitmap.LoadBitmap(IDB_BITMAP1} ; 
//创建位图画刷 
CBrush brush(&bitmap} ; 
//创建并获得设备描述表 
CClientDC dc(this}; 
//利用红色画刷填充鼠标拖曳过程中形成的矩形区域 dc.FillRect(CRect(m-ptOr工gin,point} , &brush} ; 
CView : :OnLButtonUp(nFlags , point} ; 
Build并运行Draw程序,然后在程序窗口内拖动鼠标,即可看到利用所创建的位图画

刷填充的效果,如图 4.24所示。  
图 4.24位图画刷运行结果

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -