zoukankan      html  css  js  c++  java
  • 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 这个应该总结一下 我还没弄呢
     
  • 相关阅读:
    How do I change a .txt file to a .c file?
    [CQOI2007]余数求和
    CSP-J总结&题解
    【CSP游记S】
    [LuoguP1462]通往奥格瑞玛的道路
    归并排序——逆序对
    [NOIP 2011]选择客栈
    [二分图初步]【模板】二分图匹配,匈牙利算法
    [NOIP 2018]旅行
    黑魔法师之门 (magician)-并查集
  • 原文地址:https://www.cnblogs.com/xiaoyoucai/p/8317518.html
Copyright © 2011-2022 走看看