untitled-37.txt

来自「mfc 教程」· 文本 代码 · 共 20 行

TXT
20
字号
    66   MFC Windows程序设计(第 2版)
      delete dc.Selectob3ect(p01dPen);
    但是请不要这样做。虽然这种方法对画笔管用,但不适用于画刷。为什么?因为如果
创建了两个一样的CBrush,则32位Windows通过只创建一个GDI画刷来节省内存,这等于
将两个CBrush指针合起来引用一个HBRUSH。(同HWND确定窗口和HDC确定设备描述表
一样,HBRUSH是唯一确定GDI画刷的句柄。CBrush将HBRUSH封装起来并将HBRUSH句
柄存储在它的m—hobject数据成员中。)由于CDC::Selectohject用到由MFC维护的内部表
格,把从Selectohject返回的HBRUSH句柄转换为CBrush指针,而且该表格形成HBRUSH和
CBrush间的—一映射,所以得到的CBrush指针可能和new返回的CBrush指针不一致。您要
保证将 new返回的指针传送给 delete。这样  GDI对象和  C+十对象就都能被正确地清除了。
2.2.12标尺应用程序
    了解GDI和封装了GDI的MFC类的最佳方法是编写程序代码。让我们从简单的应用
程序开始。图2-12包含了标尺的源程序。它在屏幕上画了一个。12英寸的标尺。标尺的输
出见图2-11。
                                          图2-11标尺窗口
      Ruler. h
      class CMyApp: public CWlnApp
      5
      public:

⌨️ 快捷键说明

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