添加Menu

1. 在资源文件中添加Menu
void ClistbDlg::OnRButtonDown(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CMenu menu;
menu.LoadMenu(IDR_MENU1);
CMenu* pPopup=menu.GetSubMenu(0);

          //ClientToScreen( )是把窗口坐标转换为屏幕坐标
          //ScreenToClient( )是把屏幕坐标转换为窗口坐标
          //屏幕坐标是相对于屏幕左上角的,而窗口坐标是相对于窗口用户区左上角的
ClientToScreen(&point);

        //该函数在指定位置显示快捷菜单,并跟踪菜单项的选择
          //TPM_LEFTBUTTON:若设置此标志,用户只能用鼠标左键选择菜单项。   
          //TPM_RIGHTBUTTON:若设置此标志,用户能用鼠标左、右键选择菜单项。
          //X:在屏幕坐标下,快捷菜单的水平位置。   
          //Y:在屏幕坐标下,快捷菜单的垂直位置。
pPopup->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,point.x,point.y,this);
CDialog::OnRButtonDown(nFlags, point);
}


 CMenu类的成员
   数据成员
  
m_hMenu 
指定附加给CMenu对象的窗口菜单的句柄
  构造函数
  
CMenu 
构造一个CMenu对象
  初始化
  
Attach 
附加一个Windows菜单句柄给CMenu对象 
Detach 
从CMenu对象中分离Windows菜单的句柄,并返回该句柄 
FromHandle 
返回一个指向给定Windows菜单句柄的CMenu对象的指针 
GetSafeHmenu 
返回由CMenu对象包含的m_hMenu值 
DeleteTempMap 
删除由FromHandle成员函数创建的所有临时CMenu对象 
CreateMenu 
创建一个空菜单,并将其附加给CMenu对象 
CreatePopupMenu 
创建一个空的弹出菜单,并将其附加给CMenu对象 
LoadMenu 
从可执行文件中装载菜单资源,并将其附加给CMenu对象LoadMenuIndirect从内存的菜单模板中装载菜单,并将其附加给CMenu对象 
DestroyMenu 
销毁附加给CMenu对象的菜单,并释放菜单占用的内存
  菜单操作
  
DeleteMenu 
从菜单中删除指定的项。如果菜单项与弹出菜单相关联,那么将销毁弹出菜单的句柄,并释放它占用的内存 
TrackPopupMenu 
在指定的位置显示浮动菜单,并跟踪弹出菜单的选择项
  菜单项操作
  
AppendMenu 
在该菜单末尾添加新的菜单项 
CheckMenuItem 
在弹出菜单的菜单项中放置或删除检测标记 
CheckMenuRadioItem 
将单选钮放置在菜单项之前,或从组中所有的其它菜单项中删除单选钮 
SetDefaultItem 
为指定的菜单设置缺省的菜单项GetDefaultItem获取指定的菜单缺省的菜单项 
EnableMenuItem 
使菜单项有效、无效或变灰GetMenuItemCount决定弹出菜单或顶层菜单的项数 
GetMenuItemID 
获取位于指定位置菜单项的菜单项标识 
GetMenuState 
返回指定菜单项的状态或弹出菜单的项数 
GetMenuString 
获取指定菜单项的标签GetMenuItemInfo获取有关菜单项的信息 
GetSubMenu 
获取指向弹出菜单的指针 
InsertMenu 
在指定位置插入新菜单项,并顺次下移其它菜单项 
ModifyMenu 
改变指定位置的已存在的菜单项 
RemoveMenu 
从指定的菜单中删除与弹出菜单相关联的菜单项 
SetMenuItemBitmaps 
将指定检测标记的位图与菜单项关联 
GetMenuCountextHelpID 
获取与菜单关联的帮助文本的ID号 
SetMenuCountextHelpID 
设置与菜单关联的帮助文本的ID号
  可覆盖的函数
  
DrawItem 
通过框架来调用,其发生于拥有者菜单的可视部分有所改变 
MeasureItem 
通过框架来调用,用于决定当创建了拥有者菜单时的菜单维数

你可能感兴趣的:(添加Menu)