我是靠谱客的博主 执着短靴,最近开发中收集的这篇文章主要介绍CMenu* CWnd::GetSystemMenu(),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

CWnd::GetSystemMenu
允许应用访问"控制"菜单进行复制和修改。

CMenu* CWnd::GetSystemMenu(BOOL bRevert) const;
//\
/*bRevert:指定要执行的操作。如果bRevert为FALSE,GetSystemMenu将返回当前使用的"控制"菜单的副本的句柄。此副本最初与控制菜单相同,但可以被修改。如果bRevert为TRUE,GetSystemMenu()将"控制"菜单重置为默认状态,前一个可能已被修改过的"控制"菜单(如果有的话)被破坏,在这种情况下,返回值是不确定的。
返回值:如果bRevert为FALSE,则标识"控制"菜单的副本。如果bRevert为TRUE,则返回值是不确定的。
返回的指针可能是临时的,不应存储已备后用。*/
/*备注:
任何不使用GetSystemMenu()自己制作"控制"菜单副本的窗口都会收到标准的"控制"菜单。GetSystemMenu()成员函数返回的指针可以与
CMenu::AppendMenu()、CMenu::InsertMenu或CMenu::ModifyMenu()函数一起使用,以更改"控制"菜单。"控制"菜单最初包含用各种ID值表示的项目,例如SC_CLOSE、SC_MOVE和SC_SIZE。控制菜单上的项目生成WM_SYSCOMMAND消息。所有预定义的控制菜单项的ID号都大于0xF000(十进制170000),如果应用程序将项目添加到"控制"菜单,则其ID号应小于F000。
Windows可能会自动使标准"控制"菜单上的项目不可用。CWnd可以通过响应在显示任何菜单之前内部发送的WM_INITMENU消息来执行自己的选择或不可用(carry out its own selection or unavailability)。*/
// The following code fragment is taken from CMyDlg::OnInitDialog
// CMyDlg is derived from CDialog

// Add "About..." menu item to system menu.

// IDM_ABOUTBOX must be in the system command range.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);

CMenu *pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
   CString strAboutMenu;
   strAboutMenu.LoadString(IDS_ABOUT);
   if (!strAboutMenu.IsEmpty())
   {
      pSysMenu->AppendMenu(MF_SEPARATOR);
      pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
   }
}

// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE);  // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon

最后

以上就是执着短靴为你收集整理的CMenu* CWnd::GetSystemMenu()的全部内容,希望文章能够帮你解决CMenu* CWnd::GetSystemMenu()所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(61)

评论列表共有 0 条评论

立即
投稿
返回
顶部