3)在View中添加LBUTTONDOWN(标准消息)

1)消息一共分为四类:

      (1)标准消息-->以WM_  开头的都是标准消息

      (2)命令消息---->  菜单  工具条  快捷键(两个按键的组合是快捷键,一个按键是 WM_KEYDOWN(标准消息)

        (3)控件或者 通知消息(如空间发送) ------>这个我不会  

         (4)用户自定义消息  一般是自己定义  宏以UM_  开头

                         然后通过  SendMessage()和PostMessage()  来发送消息

2)情景说明:

      我想在 中间空白的地方点击鼠标左键  然后弹出一个 信息框,那么该怎么添加代码?

3)分析:

      首先  我是在VIEW区域添加动作  而且  通过要求可知道   消息是WM_LBUTTONDOWN   

      也就是在View类中添加代码,针对于  标准消息  下面的步骤基本都是固定的

4)先展示  当前的目录和类文档图:

      

      

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

      

5)第一步  

      

 6)第二步

    

              

7)找到那个WM_LBUTTONDOWN

  

                    

 8) 看那个 VIew文件的变化:

  

      

10)我的代码添加:
  

    

1 void CAAAAAAAView::OnLButtonDown(UINT nFlags, CPoint point)
2 {
3     // TODO: 在此添加消息处理程序代码和/或调用默认值
4     ::MessageBox(AfxGetMainWnd()->m_hWnd,L"你敲下了鼠标的左键",L"Interact",MB_OK);
    //上面的代码是调用是Win32的函数,我还可以调用当前这个类的自己的函数,其实他的父类 也就是VIEW给封装好了各种函数
    //和上面的代码等效,要改变
"你按下了鼠标的左键"这句话的字节编码 这个的字节编码是多字节 但是 这个函数要求是 长字节 所以 加一个L 改变一下字节编码
    //this->MessageBox(L"你按下了鼠标的左键");
5 CView::OnLButtonDown(nFlags, point); 6 }

 

11)我的结果展示:
    

  

    

12)

MessageBox();这个函数需要四个参数   第一个就是当前窗口的句柄   应该要Frame(也就是这个窗口的句柄)在 WinMain中  所以是
   
AfxGetMainWnd()->m_hWnd

13)具体怎么找别的句柄 比如 Frame View hInstance 这个应该总结一下 我还没弄呢
 
原文地址:https://www.cnblogs.com/xiaoyoucai/p/8317518.html