MFC CMenu 类 公共数据成员:CMenu::m_hMenu
CMenu 类是MFC(Microsoft Foundation Classes)中用于处理菜单的类。CMenu::m_hMenu 是该类的一个公共数据成员,它是一个句柄(handle),用于表示菜单的 Windows 句柄。在 MFC 编程中,CMenu::m_hMenu 可以用来获取菜单的句柄,从而进行各种菜单的操作,比如添加菜单项、删除菜单项、禁用菜单项等。这个句柄是一个操作系统提供的标识符,通过它,可以在 Windows 操作系统中找到相应的菜单资源。以下是一个简单的示例,演示如何使用 CMenu::m_hMenu 获取菜单句柄:CMenu myMenu;myMenu.LoadMenu(IDR_MYMENU); // IDR_MYMENU 是菜单资源的 ID,可以根据实际情况修改// 获取菜单句柄HMENU hMenu = myMenu.m_hMenu;// 进行菜单操作,比如添加一个新的菜单项AppendMenu(hMenu, MF_STRING, ID_NEW_MENU_ITEM, _T("New Menu Item"));在这个示例中,LoadMen...
MFC CMenu 类 公共运算符:CMenu::operator ==
在 MFC(Microsoft Foundation Classes)中,CMenu::operator == 是 CMenu 类的一个成员运算符,用于比较两个 CMenu 对象是否相等。以下是该运算符的基本信息:BOOL operator ==( const CMenu& menu) const;该运算符返回一个布尔值,表示两个 CMenu 对象是否相等。如果相等,则返回 TRUE;如果不相等,则返回 FALSE。示例用法:CMenu menu1, menu2;menu1.CreatePopupMenu(); // 创建一个弹出式菜单menu2.LoadMenu(IDR_MENU1); // 加载另一个菜单资源if (menu1 == menu2){ // 两个菜单对象相等 // ...}else{ // 两个菜单对象不相等 // ...}在上述示例中,首先通过 CreatePopupMenu 和 LoadMenu 方法分别创建了两个 CMenu 对象 menu1 和 menu2。然后,通过 operator == 运算符比较这两个对象是否相等。如...
MFC CMenu 类 公共运算符:CMenu::operator !=
在 MFC(Microsoft Foundation Classes)中,CMenu::operator != 是 CMenu 类的一个成员运算符,用于比较两个 CMenu 对象是否不相等。以下是该运算符的基本信息:BOOL operator !=( const CMenu& menu) const;该运算符返回一个布尔值,表示两个 CMenu 对象是否不相等。如果不相等,则返回 TRUE;如果相等,则返回 FALSE。示例用法:CMenu menu1, menu2;menu1.CreatePopupMenu(); // 创建一个弹出式菜单menu2.LoadMenu(IDR_MENU1); // 加载另一个菜单资源if (menu1 != menu2){ // 两个菜单对象不相等 // ...}else{ // 两个菜单对象相等 // ...}在上述示例中,首先通过 CreatePopupMenu 和 LoadMenu 方法分别创建了两个 CMenu 对象 menu1 和 menu2。然后,通过 operator != 运算符比较这两个对象是否不相...
MFC CMenu 类 公共运算符:CMenu::operator HMENU
在 MFC(Microsoft Foundation Classes)中,CMenu::operator HMENU 是 CMenu 类的一个转换运算符,用于将 CMenu 对象转换为 HMENU 句柄。以下是该运算符的基本信息:operator HMENU() const;该运算符允许将 CMenu 对象直接赋值给 HMENU 句柄,或者在需要 HMENU 句柄的地方使用 CMenu 对象。示例用法:CMenu menu;menu.CreatePopupMenu(); // 创建一个弹出式菜单HMENU hMenu = menu; // 使用转换运算符将 CMenu 转换为 HMENU 句柄在上述示例中,首先通过 CreatePopupMenu 方法创建了一个弹出式菜单对象 menu,然后通过转换运算符将其转换为 HMENU 句柄 hMenu。这使得可以在需要 HMENU 句柄的地方使用 CMenu 对象。
MFC CMenu 类 公共方法:CMenu::TrackPopupMenuEx
在 MFC(Microsoft Foundation Classes)中,CMenu::TrackPopupMenuEx 是 CMenu 类的一个公共方法,用于在指定位置显示弹出式菜单,并等待用户选择菜单项。以下是该方法的基本信息:BOOL TrackPopupMenuEx( UINT fuFlags, int x, int y, CWnd* pWnd, LPTPMPARAMS lptpm);参数说明: fuFlags: 用于指定弹出式菜单的标志,如 TPM_LEFTALIGN、TPM_RETURNCMD 等。 x: 菜单出现的 x 坐标。 y: 菜单出现的 y 坐标。 pWnd: 与菜单关联的窗口。 lptpm: 一个指向 TPMPARAMS 结构的指针,该结构包含了额外的参数,如菜单的水平和垂直偏移等。TPMPARAMS 结构定义如下:typedef struct tagTPMPARAMS { UINT cbSize; RECT rcExclude;} TPMPARAMS, *LPTPMPARAMS;返回值: 如果用户选择了菜单项,且指定了 TPM_...
MFC CMenu 类 公共方法:CMenu::TrackPopupMenu
CMenu::TrackPopupMenu 是 MFC(Microsoft Foundation Classes)中 CMenu 类的一个公共方法,用于在指定位置显示弹出式菜单,并等待用户选择菜单项。以下是该方法的基本信息:BOOL TrackPopupMenu( UINT nFlags, int x, int y, CWnd* pWnd, LPCRECT lpRect = NULL);参数说明: nFlags: 用于指定弹出式菜单的标志,如 TPM_LEFTALIGN、TPM_RETURNCMD 等。 x: 菜单出现的 x 坐标。 y: 菜单出现的 y 坐标。 pWnd: 与菜单关联的窗口。 lpRect: 一个矩形区域的指针,指定了在哪个区域内显示弹出式菜单。如果为 NULL,菜单将显示在指定的坐标上。返回值: 如果用户选择了菜单项,且指定了 TPM_RETURNCMD 标志,则返回用户选择的菜单项的标识符;否则,返回值为非零。如果用户取消菜单,返回值为零。示例用法:void CMyWnd::OnContextMenu(CWnd* pWnd, CPoint po...
MFC CMenu 类 公共方法:CMenu::SetMenuItemInfo
在 MFC(Microsoft Foundation Classes)中,CMenu::SetMenuItemInfo 是 CMenu 类的一个公共方法,用于设置菜单项的信息。以下是该方法的基本信息:BOOL SetMenuItemInfo( UINT uItem, UINT uFlags, LPCMENUITEMINFO lpMenuItemInfo);参数说明: uItem: 要设置信息的菜单项的标识符或位置索引,取决于 uFlags。 uFlags: 指定 uItem 的标志,可以是 MF_BYCOMMAND 或 MF_BYPOSITION。 lpMenuItemInfo: 指向 MENUITEMINFO 结构的指针,该结构包含了要设置的菜单项的信息。MENUITEMINFO 结构定义如下:typedef struct tagMENUITEMINFO { UINT cbSize; UINT fMask; UINT fType; UINT fState; UINT wID; HMENU h...
MFC CMenu 类 公共方法:CMenu::SetMenuItemBitmaps
在 MFC(Microsoft Foundation Classes)中,CMenu::SetMenuItemBitmaps 是 CMenu 类的一个公共方法,用于设置菜单项的位图。以下是该方法的基本信息:BOOL SetMenuItemBitmaps( UINT nPosition, UINT nFlags, HBITMAP hBitmapUnchecked, HBITMAP hBitmapChecked);参数说明: nPosition: 要设置位图的菜单项的位置索引。 nFlags: 指定位图的标志,如 MF_BYPOSITION、MF_BYCOMMAND 等。 hBitmapUnchecked: 未选中状态下的位图句柄。 hBitmapChecked: 选中状态下的位图句柄。返回值: 如果成功,则返回非零值;如果失败,则返回零。示例用法:CMenu menu;menu.CreatePopupMenu(); // 创建一个弹出式菜单HBITMAP hBitmapUnchecked = ::LoadBitmap(AfxGetInstanceHandle(), MAK...
MFC CMenu 类 公共方法:CMenu::SetMenuInfo
在 MFC(Microsoft Foundation Classes)中,CMenu::SetMenuInfo 是 CMenu 类的一个公共方法,用于设置与菜单关联的 MENUINFO 结构。以下是该方法的基本信息:BOOL SetMenuInfo( LPCMENUINFO lpMenuInfo);参数说明: lpMenuInfo: 指向 MENUINFO 结构的指针,该结构包含了菜单的信息。MENUINFO 结构定义如下:typedef struct tagMENUINFO { DWORD cbSize; DWORD fMask; DWORD dwStyle; UINT cyMax; HBRUSH hbrBack; DWORD dwContextHelpID; ULONG_PTR dwMenuData;} MENUINFO, *LPMENUINFO;返回值: 如果成功,则返回非零值;如果失败,则返回零。示例用法:CMenu menu;menu.CreatePopupMenu(); // 创建一个弹出式菜单MENUINFO menuInfo;memse...
MFC CMenu 类 公共方法:CMenu::SetMenuContextHelpId
在 MFC(Microsoft Foundation Classes)中,CMenu::SetMenuContextHelpId 是 CMenu 类的一个公共方法,用于设置菜单的上下文帮助标识符。以下是该方法的基本信息:void SetMenuContextHelpId( DWORD dwContextHelpId);参数说明: dwContextHelpId: 上下文帮助标识符。返回值: 该方法没有返回值。示例用法:CMenu menu;menu.CreatePopupMenu(); // 创建一个弹出式菜单// 设置菜单的上下文帮助标识符DWORD contextHelpId = 123;menu.SetMenuContextHelpId(contextHelpId);在上述示例中,首先通过 CreatePopupMenu 创建了一个弹出式菜单对象 menu,然后使用 SetMenuContextHelpId 方法设置了菜单的上下文帮助标识符。这个上下文帮助标识符通常用于与帮助系统集成,以提供与菜单相关的帮助信息。
MFC CMenu 类 公共方法:CMenu::SetDefaultItem
在 MFC(Microsoft Foundation Classes)中,CMenu::SetDefaultItem 是 CMenu 类的一个公共方法,用于设置菜单的默认项。以下是该方法的基本信息:BOOL SetDefaultItem( UINT nIndex, BOOL bByPos = FALSE);参数说明: nIndex: 默认菜单项的位置索引或标识符,取决于 bByPos 参数。 bByPos: 一个布尔值,如果为 TRUE,则 nIndex 参数表示菜单项的位置索引;如果为 FALSE,则 nIndex 参数表示菜单项的标识符。返回值: 如果成功,则返回非零值;如果失败,则返回零。示例用法:CMenu menu;menu.CreatePopupMenu(); // 创建一个弹出式菜单// 添加两个字符串菜单项menu.AppendMenu(MF_STRING, IDM_NEW, _T("New"));menu.AppendMenu(MF_STRING, IDM_OPEN, _T("Open"));// 设置第一个菜单项为默认...
MFC CMenu 类 公共方法:CMenu::RemoveMenu
CMenu::RemoveMenu 是 MFC(Microsoft Foundation Classes)中 CMenu 类的一个公共方法,用于从菜单中移除指定的菜单项。以下是该方法的基本信息:BOOL RemoveMenu( UINT nPosition, UINT nFlags);参数说明: nPosition: 要移除菜单项的位置索引。 nFlags: 指定移除菜单项的标志,如 MF_BYPOSITION、MF_BYCOMMAND 等。返回值: 如果成功,则返回非零值;如果失败,则返回零。示例用法:CMenu menu;menu.CreatePopupMenu(); // 创建一个弹出式菜单// 添加两个字符串菜单项menu.AppendMenu(MF_STRING, IDM_NEW, _T("New"));menu.AppendMenu(MF_STRING, IDM_OPEN, _T("Open"));// 移除第一个菜单项BOOL result = menu.RemoveMenu(0, MF_BYPOSITION);if (re...
MFC CMenu 类 公共方法:CMenu::ModifyMenu
CMenu::ModifyMenu 是 MFC(Microsoft Foundation Classes)中 CMenu 类的一个公共方法,用于修改菜单中的指定菜单项。以下是该方法的基本信息:BOOL ModifyMenu( UINT nPosition, UINT nFlags, UINT_PTR nIDNewItem = 0, LPCTSTR lpszNewItem = NULL);参数说明: nPosition: 要修改菜单项的位置索引。 nFlags: 指定修改菜单项的标志,如 MF_STRING、MF_POPUP 等。 nIDNewItem: 如果修改的是一个命令菜单项,这是新的菜单项的标识符。 lpszNewItem: 如果修改的是字符串菜单项,这是新的菜单项的文本。返回值: 如果成功,则返回非零值;如果失败,则返回零。示例用法:CMenu menu;menu.CreatePopupMenu(); // 创建一个弹出式菜单// 添加一个字符串菜单项menu.AppendMenu(MF_STRING, IDM_NEW, _T("New"))...
MFC CMenu 类 公共方法:CMenu::MeasureItem
CMenu::MeasureItem 是 MFC(Microsoft Foundation Classes)中 CMenu 类的一个公共方法,用于测量菜单项的大小。以下是该方法的基本信息:void MeasureItem( LPMEASUREITEMSTRUCT lpMIS);参数说明: lpMIS: 指向 MEASUREITEMSTRUCT 结构的指针,该结构包含了关于菜单项大小的信息。MEASUREITEMSTRUCT 结构定义如下:typedef struct tagMEASUREITEMSTRUCT { UINT CtlType; UINT CtlID; UINT itemID; UINT itemWidth; UINT itemHeight; ULONG_PTR itemData;} MEASUREITEMSTRUCT, *LPMEASUREITEMSTRUCT;返回值: 该方法没有返回值。示例用法:class CMyWnd : public CFrameWnd{public: C...
MFC CMenu 类 公共方法:CMenu::LoadMenuIndirect
在 MFC(Microsoft Foundation Classes)中,CMenu::LoadMenuIndirect 是 CMenu 类的一个公共方法,用于通过指定的 MENUITEMTEMPLATE 结构动态创建菜单。以下是该方法的基本信息:BOOL LoadMenuIndirect( const void* lpMenuTemplate);参数说明: lpMenuTemplate: 指向 MENUITEMTEMPLATE 结构的指针,该结构定义了菜单的布局和属性。返回值: 如果成功,则返回非零值;如果失败,则返回零。示例用法:CMenu menu;MENUITEMTEMPLATE menuTemplate;// 构造 MENUITEMTEMPLATE 结构,具体内容需要根据需求设置// 示例中使用了一个简单的菜单项menuTemplate.mtOption = MF_STRING;menuTemplate.mtID = IDM_NEW;menuTemplate.mtString = _T("New");BOOL result = menu.LoadMen...
MFC CMenu 类 公共方法:CMenu::LoadMenu
CMenu::LoadMenu 是 MFC(Microsoft Foundation Classes)中 CMenu 类的一个公共方法,用于加载菜单资源。以下是该方法的基本信息:BOOL LoadMenu( UINT nIDResource);参数说明: nIDResource: 要加载的菜单资源的 ID。返回值: 如果成功,则返回非零值;如果失败,则返回零。示例用法:CMenu menu;UINT menuResourceID = IDR_MAINFRAME; // 菜单资源的 IDBOOL result = menu.LoadMenu(menuResourceID);if (result){ // 加载菜单资源成功 // ...}else{ // 加载菜单资源失败 // ...}在上述示例中,IDR_MAINFRAME 是菜单资源的 ID。通过调用 LoadMenu 方法,可以将菜单资源加载到 menu 对象中。如果加载成功,返回值为非零,你可以在加载成功后使用 menu 对象进行菜单的各种操作。如果加载失败,返回值为零,可以根据需要处理加载失败的情况。
MFC CMenu 类 公共方法:CMenu::InsertMenuItem
在 MFC(Microsoft Foundation Classes)中,CMenu::InsertMenuItem 是 CMenu 类的一个公共方法,用于插入菜单项。以下是该方法的基本信息:BOOL InsertMenuItem( UINT uItem, LPCMENUITEMINFO lpMenuItemInfo, BOOL fByPosition = TRUE);参数说明: uItem: 要插入的菜单项的位置索引或标识符,取决于 fByPosition 参数。 lpMenuItemInfo: 指向 MENUITEMINFO 结构的指针,该结构包含有关要插入的菜单项的信息。 fByPosition: 一个布尔值,如果为 TRUE,则 uItem 参数表示菜单项的位置索引;如果为 FALSE,则 uItem 参数表示菜单项的标识符。返回值: 如果成功,则返回非零值;如果失败,则返回零。示例用法:CMenu menu;menu.CreatePopupMenu(); // 创建一个弹出式菜单MENUITEMINFO menuItemInfo;memset(&menuI...
MFC CMenu 类 公共方法:CMenu::InsertMenu
CMenu::InsertMenu 是 MFC(Microsoft Foundation Classes)中 CMenu 类的一个公共方法,用于在指定位置插入一个菜单项或弹出式菜单。以下是该方法的基本信息:BOOL InsertMenu( UINT nPosition, UINT nFlags, UINT_PTR nIDNewItem = 0, LPCTSTR lpszNewItem = NULL);参数说明: nPosition: 要插入菜单项的位置索引。索引从 0 开始,表示菜单中的第一个菜单项。 nFlags: 指定插入菜单项的标志,如 MF_STRING、MF_POPUP 等。 nIDNewItem: 如果插入的是一个命令菜单项,这是该菜单项的标识符。 lpszNewItem: 如果插入的是字符串菜单项,这是菜单项的文本。返回值: 如果成功,则返回非零值;如果失败,则返回零。示例用法:CMenu menu;menu.CreateMenu(); // 创建一个新菜单// 插入一个字符串菜单项menu.InsertMenu(0, MF_STRING, IDM_NEW...
MFC CMenu 类 公共方法:CMenu::GetSubMenu
CMenu::GetSubMenu 是 MFC(Microsoft Foundation Classes)中 CMenu 类的一个公共方法,用于获取指定菜单项的子菜单。以下是该方法的基本信息:CMenu* GetSubMenu( int nPos) const;参数说明: nPos: 要获取子菜单的位置索引。索引从 0 开始,表示菜单中的第一个菜单项。返回值: 如果成功,则返回指向 CMenu 对象的指针,该对象表示请求的子菜单。如果失败,返回 NULL。示例用法:CMenu menu;menu.LoadMenu(IDR_MAINFRAME); // 加载菜单资源int submenuIndex = 1; // 假设需要获取第二个菜单项的子菜单CMenu* pSubMenu = menu.GetSubMenu(submenuIndex);if (pSubMenu != NULL){ // 在这里可以使用 pSubMenu 操作子菜单 // ...}else{ // 获取子菜单失败 // ...}在上述示例中,IDR_MAINFRAME 是菜单资源的 ID,m...
MFC CMenu 类 公共方法:CMenu::GetMenuString
CMenu::GetMenuString 是 MFC(Microsoft Foundation Classes)中 CMenu 类的一个公共方法,用于获取菜单项的字符串。以下是该方法的基本信息:BOOL GetMenuString( UINT nIDItem, CString& rString, UINT nFlags = MF_BYCOMMAND) const;参数说明: nIDItem: 要获取字符串的菜单项标识符。 rString: 用于存储菜单项字符串的 CString 对象的引用。 nFlags: 指定如何解释 nIDItem 参数的标志。默认为 MF_BYCOMMAND,表示 nIDItem 是一个菜单项的命令标识符。还可以使用 MF_BYPOSITION 表示 nIDItem 是菜单项的位置索引。返回值: 如果成功,则返回非零值;如果失败,则返回零。示例用法:CMenu menu;menu.LoadMenu(IDR_MAINFRAME); // 加载菜单资源CString menuItemString;BOOL result = menu.GetMen...