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

📄 untitled-22.txt

📁 mfc 教程
💻 TXT
字号:
:: ReleaseCapture来释放鼠标。对这些函数的调用通常发生在鼠标键按下或抬起处理程序
中,如下:
      // In CMa主nw上ndow’s messaqe map
      ON.WM- LBUTTONDOWN()
      ON.WM- LBUTTONUP()
      voidCNainwindow::OnLButtonDown(UINTnFlags, CPointpoint)
          SetCapture();
      Z
      void CMainwindow::OnLButtonUp(UINT "Flags,CPoint point)
      3
          :.ReleaseCaPture();
      g
    在此期间,就算光标离开了,CMainwindow仍然接收报告光标位置的WM.MOUSEMOVE
消息。客户区鼠标消息继续以客户区坐标报告光标位置,但是坐标现在可以为负,也可以超
出窗口的客户区尺寸。
    相关函数  CWnd:: GetCapture返回一个  CWnd指针,指向拥有捕获能力的窗口。在  Win32
环境下,如果鼠标没被捕获,或它被属于别的线程的窗口捕获,则GetCaPture将返回NULL。
GetCapture的最普通的用处就是确定自己的窗口是否捕获了鼠标。语句
      If(GetCapture()== th土s)
当且仅当this标识的窗口在当前捕获了鼠标才为真值。
    捕获鼠标又怎么解决画橡皮筋线的问题呢?通过响应wM.LBUn0ND0wN消息捕获
鼠标,并在WM—LBUTTONUP消息到达时释放它,就可以确保当鼠标键释放时得到WM.
LBUTh?ONUP消息了。在下节中的示例程序就说明了这种技术的实际作用。
3.1.吕鼠标捕获的应用
    图3-4中的MouseCap应用程序是一个最基本的画图程序,用户可以使用鼠标画直线。
要画一条直线,可以在窗口客户区任何地方按下鼠标左键,保持按下状态并拖动光标。在鼠
标移动时,会在固定点和光标之间出现一条细的橡皮筋线。当鼠标键释放后,橡皮筋线就会
被清除,一条红色16像素宽的线将占据它的位置。因为鼠标键被按着时鼠标被捕获了,所
以即使鼠标移动到了窗口的外面,橡皮筋线还起作用。而且在鼠标键被释放时,不管光标在

⌨️ 快捷键说明

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