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

📄 untitled-25.txt

📁 mfc 教程
💻 TXT
字号:
告诉onMouseMove和onLButtonUp是否已画了橡皮筋线。如果。bCaptureEnabled是真,则
OnLButtonDown的唯一的操作就是捕获鼠标:
      if(In--bCaptureEnabled)
          SetCaature();
    m—bCaptureEnabled由CMainwindow的构造函数初始化为TRUE。它由窗口的onNcLBut-
tonDown处理程序切换,以便可以打开和关闭鼠标捕获来查看鼠标捕获对程序操作的影响。
(待会儿详细讨论。)
    onMouseMove的工作就是无论何时移动了鼠标,都要移动橡皮筋线并用新的光标位置
更新LptTo。语句
      InvertL。ne(&dc,。ntFrom,m-ptTo);
清除以前画的橡皮筋线,而语句
      InvertLine(&dc,。ptFrom,point);
画一条新的线。Invertline是CMainwindow的一个成员。它画线不是通过将每个像素设置为
某种颜色,而是通过转换现有的像素颜色。这就能确保线条无论在什么背景上都可以被看
见,并且只要恢复原有的屏幕颜色就可以清除已有的线。转换是用下列语句将设备描述表
的绘图方式设置为RZ.NOT完成的:
      nit noldriode= pDC-> SetROPZ(RZNOT);
可以参阅第2章中有关RZ.NOT以及其他绘图模式的介绍。
    在鼠标左键释放时,调用  CMainwindow:: onLButtonUp。在  m—bTraking被设置为  FAInE
并释放鼠标以后,它将清除橡皮筋线,最后调用  onMouseMove:
      CClientDC dc(this);
      InvertLine(&dC, In--ptFrom, m-ptTo);
onLButtonUp然后创建一个16像素宽原色为红色的笔,将它选人设备描述表,并绘制粗的红
色线条:
      Cnen nen(PS_SOLID, 16, RGB(255, 0, 0》;
      dc.Selectobject(&pen);
      dc.MoveTo(。ptFro。);
      dc.LineTo(po。nt);
处理结束后, onLButtonUp返回,绘图操作完成。图  3-4显示了  MouseCap窗口含有几条绘制
好的线和新的橡皮筋线的样子。
    在熟悉了程序以后,可以单击标题栏激活OnNcLButtonDown处理程序,将。bCaptureEn一

⌨️ 快捷键说明

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