• MFC_菜单


    1.菜单索引号确定菜单的索引号,注意从 0 开始,分隔符也算数。什么叫弹出菜单(Popup Menu)?一个

    子菜单只能有一个缺省菜单。

    1 //GetMenu()->GetSubMenu(0)->SetDefaultItem(5,TRUE);
    2 str.Format("x=%d,y=%d",GetSystemMetrics(SM_CXMENUCHECK),
    3 GetSystemMetrics(SM_CYMENUCHECK));//获得系统的菜单的位图的大小。
    4 /* SetMenu(NULL);//移除菜单 CMenu menu;
    5 menu.LoadMenu(IDR_MAINFRAME);
    6 SetMenu(&menu);
    7 menu.Detach();*/增加菜单,此处 detach(),如果是局部变量。

     2.设置菜单可用情况

    1 void CMainFrame::OnUpdateEditCut(CCmdUI* pCmdUI)
    2 {4 pCmdUI->Enable();//当此菜单显示时,设为可用。
    5 }

     3.右键弹出菜单程序

        两种方法1.添加控件Project->Add to Project->component and controls->文件夹 VC components->Popup Menu OK

                   2.自己创建函数TrackPopupMenu(),在右键响应函数中确定

    1 CMenu menu;
    2 menu.LoadMenu(IDR_MENU1);//menu1 实在资源视图中自己创建的函数
    3 CMenu *pPopup=menu.GetSubMenu(0);  
    4 ClientToScreen(&point);  //这句话是坐标和菜单对应
    5 pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y,
    6 GetParent());

      4.创建动态菜单

      

     1 CMenu menu;
     2 menu.CreatePopupMenu();//创建弹出菜单
     3 // GetMenu()->AppendMenu(MF_POPUP,(UINT)menu.m_hMenu,"WinSun");
     4 GetMenu()->InsertMenu(2,MF_BYPOSITION  |
     5 MF_POPUP,(UINT)menu.m_hMenu,"WinSun");
     6 menu.AppendMenu(MF_STRING,IDM_HELLO,"Hello");
     7 menu.AppendMenu(MF_STRING,112,"Weixin");
     8 menu.AppendMenu(MF_STRING,113,"Mybole");
     9 menu.Detach();
    10 GetMenu()->GetSubMenu(0)->AppendMenu(MF_STRING,114,"Welcome");
    11 GetMenu()->GetSubMenu(0)->InsertMenu(ID_FILE_OPEN,
    12 MF_BYCOMMAND | MF_STRING,115,"维新");
    13 // GetMenu()->DeleteMenu(1,MF_BYPOSITION);
    14 // GetMenu()->GetSubMenu(0)->DeleteMenu(2,MF_BYPOSITION);
  • 相关阅读:
    Linux TCP/IP 连接查看和问题解决
    Linux Tomcat 7.0 管理员登录时"401 Unauthorized" 问题解决方法
    Tomcat 性能监控工具jvisualvm, JConsole
    Tomcat 实战-调优方案
    Linux Tomcat8 访问管理页面 403 Access Denied
    docker redis
    Spring Boot 定时任务
    Nginx rewrite使用
    五 python 发送邮件
    关于注解继承性的一个例子
  • 原文地址:https://www.cnblogs.com/Alimonky/p/5951913.html
Copyright © 2020-2023  润新知