• 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 这个应该总结一下 我还没弄呢
     
  • 相关阅读:
    树梅派学习之——nano编辑器
    树梅派学习之——输入法安装
    Qt的正则表达式类(QRegExp)
    虚拟机VMware上网配置
    Qt Android环境搭建
    qt5.8.0之静态编译
    qt编译之CONFIG += console
    面向对象的3个特性:封装、继承、多态
    Python笔记:df.loc[]和df.iloc[]的区别
    Python报错ValueError: arrays must all be same length
  • 原文地址:https://www.cnblogs.com/xiaoyoucai/p/8317518.html
Copyright © 2020-2023  润新知