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

📄 untitled-36.txt

📁 mfc 教程
💻 TXT
字号:
                                                                    第2章在窗口中绘图65
表以取代当前选人的对象。前一种方法由下面的程序代码说明:
      CPen Pen(PS.SOLID,工, RGB(255, 0, 0》;
      CPen。poldPen= dc.Selectobject(&pen);
      CBrush brush(RGB(0,0,255》;
      CBru。h。 p01dBrush= dc、Selectobject(&brush);
      dc.Selectobject(pOldPen);
      dc.Selectobject(p01dBrush);
    第二种方法如下所示:
      CPen Pen(PS.SOLID,工, RGB(255, O, 0》;
      dC.SelectobjCCt(&ppn);
      CBrushbrush(RGB(0, 0, 255》;
      dc.Selectobject(&brush);
      dc.Selectstockobject(BLACK.PEN);
      dc.Selectstockobject(WHITE.BRUSH);
    一个问题是为什么要这样做呢?实际上这是不必要的。在最新版的Windows中,允许
GDI对象在设备描述表释放的前一刻被删除并没有什么不好的影响,尤其是当你能确保在
此期间没有画图程序执行时更是如此。但是通过取消选定选人的GDI对象而实现清除设备
描述表仍然是Windows编程中的惯例。同时这也是一种好习惯,本书始终遵循这种惯例。
    相应地,有时也在堆上创建GDI对象,如下所示:
      CPen。 pPen= new CPen(PS.SOLID, l, RGB(255, 0, 0》;
      CPen。 pOldPen= dc.Selectob〕ect(pPen);
    在某一时刻,必须将该画笔从设备描述表中选出并删除。完成该任务的程序代码可能
是这样的:
      dc.Selectobject(p01dPen);
        delete pPen于
    由于Selectobject函数返回一个指向被选出设备描述表的对象的指针,因此很容易让人
想到用一条语句取消选定并删除该画笔:

⌨️ 快捷键说明

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