码迷,mamicode.com
首页 > 编程语言 > 详细

C++ Button右键弹出式菜单

时间:2014-08-01 22:43:52      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:des   style   blog   http   color   strong   io   2014   

 

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;
        

 

 

bubuko.com,布布扣   

图-1

bubuko.com,布布扣

图-2


 

备注

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

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

 

相关链接

                           

控件上弹出菜单

 




附件列表

     

    C++ Button右键弹出式菜单,布布扣,bubuko.com

    C++ Button右键弹出式菜单

    标签:des   style   blog   http   color   strong   io   2014   

    原文地址:http://www.cnblogs.com/xe2011/p/3885702.html

    (0)
    (0)
       
    举报
    评论 一句话评论(0
    登录后才能评论!
    © 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
    迷上了代码!