zoukankan      html  css  js  c++  java
  • C++ Button右键弹出式菜单

     

    Button右键弹出式菜单

     

    关键点

    用类来实现 的

     

    实现过程

    新建1个类  类名CButtonPopMenu 基类CButton

    新建1个菜单资源 IDR_MENU1

     

    // ButtonPopMenu.h : header file
    // Attributes
    public:
        CRect m_Rect;  
        CMenu m_Menu;  
        int m_MenuID;
        
    // ButtonPopMenu.cpp : implementation file     
    void CButtonPopMenu::OnRButtonDown(UINT nFlagsCPoint point
    {
        GetWindowRect( &m_Rect);
        point.x += m_Rect.left;
        point.y += m_Rect.top;
        
        VERIFY(m_Menu.LoadMenu(m_MenuID));    
        CMenupPopup = m_Menu.GetSubMenu(0); 
        ASSERT(pPopup != NULL); 
        CWndpWndPopupOwner = this; 
        
        while ( pWndPopupOwner->GetStyle() & WS_CHILD )
        {    
            pWndPopupOwner = pWndPopupOwner->GetParent(); 
            pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_LEFTBUTTONpoint.xpoint.ypWndPopupOwner);
        }
        m_Menu.Detach(); 
        m_Menu.DestroyMenu(); 
        CButton::OnRButtonDown(nFlagspoint);
    }
        
    // project02Dlg.h : header file
    #include "ButtonPopMenu.h"
    CButtonPopMenu    m_btn1; 
        
    // project02Dlg.cpp : implementation file
    BOOL CProject02Dlg::OnInitDialog()
        // TODO: Add extra initialization here
        m_btn1.m_MenuID=IDR_MENU1;
            

     

     

       

    图-1

    图-2


     

    备注

    此文可以实现任意控件的右键菜单弹出

    像一些控件默认所没有的功能都可以通过定义类 然后关联类来实现

     

    相关链接

                               

    控件上弹出菜单

     




    附件列表

    • 相关阅读:
      Jdk1.8 HashMap源码分析
      瘦身部署应用
      Redis 创建和使用集群(yum方式安装低版本)
      Redis 创建和使用集群
      记录一下
      Oracle 开发人员权限控制
      Linux 免密登录远程服务器及执行相关命令
      Oracle 连接表空间并执行SQL文件
      MySQL 8.0.13安装教程(windows 64位) (转)
      scrapy中Selector的使用
    • 原文地址:https://www.cnblogs.com/xe2011/p/3885702.html
    Copyright © 2011-2022 走看看