WEB开发网
开发学院软件开发VC 一种漂亮的自绘菜单 阅读

一种漂亮的自绘菜单

 2008-01-19 20:25:30 来源:WEB开发网   
核心提示:当CView派生类由不得CxxxxDocTemplate产生时,赋值的地方比较特殊请在CxxxWinApp类中的InitInstance()的最后加入代码:CMainFrame *pFrame=(CMainFrame *)m_pMainWnd;CChildView *pView=(CChildView *)pFrame

当CView派生类由不得CxxxxDocTemplate产生时,赋值的地方比较特殊

请在CxxxWinApp类中的InitInstance()的最后加入代码:

CMainFrame *pFrame=(CMainFrame *)m_pMainWnd;
  CChildView *pView=(CChildView *)pFrame->GetActiveView();
  pView->m_pToolBar=&(pFrame->m_wndToolBar);//注意:原m_wndToolBar是私有变量,要改成public的哦!

当CView派生类是CMainFrame类的成员变量时,就很简单,直接在OnCreate()中设置

3、在CChildView的构造函数中加入设置弹出菜单的代码

m_menu.CreatePopupMenu();
  m_menu.AppendMenu(0,ID_EDIT_UNDO,"撤消");
  m_menu.AppendMenu(MF_SEPARATOR,0);
  m_menu.AppendMenu(0,ID_EDIT_COPY,"复制");
  m_menu.AppendMenu(0,ID_EDIT_CUT,"剪切");
  m_menu.AppendMenu(0,ID_EDIT_PASTE,"粘贴");//当菜单ID与工具栏按钮ID一样时就会显示位图

4、在CChildView的析构函数中加入代码:

m_menu.DestroyMenu(); //释放资源

5、在CChildView类中加入WM_INITMENUPOPUP消息,并在其实现函数中加入代码:

if(!bSysMenu)
    m_menu.InitPopupMenu(pPopupMenu,IDR_MAINFRAME,m_pToolBar);

6、在CChildView类中加入WM_CONTEXTMENU消息,并在其实现函数中加入弹出菜单的代码:

m_menu.TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON,point.x,point.y,this);

好了!介绍完了。

大家可以在适当的地方(比如CMainFrame:OnCreate)中加入:

m_menu.SetHighLightColor(RGB(0,0,127));
m_menu.SetTextColor(RGB(0,0,0));
m_menu.SetBackColor(RGB(143,167,207));

来设置菜单颜色,怎么样:) 欢迎大家多提建议!

上一页  1 2 3 

Tags:漂亮 菜单

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接