概述
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()所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复