作者:Peaches小窝 | 来源:互联网 | 2023-09-18 17:21
1建立一个对话框工程;在dlg类里定义一个菜单指针m_pMenu,在对话框OnInitDialog函数里添加代码:m_pMenuGetSystemMenu(FALSE);获取系统菜
1建立一个对话框工程;在dlg类里定义一个菜单指针m_pMenu,在对话框OnInitDialog函数里添加代码:
m_pMenu=GetSystemMenu(FALSE);//获取系统菜单的指针
m_pMenu->AppendMenu(MF_SEPARATOR);//添加分割线
m_pMenu->AppendMenu(MF_STRING,IDI_PECULIARMENU,"系统菜单");
补充:IDI_PECULIARMENU 为一个常数,需要在Resourece.h中宏定义:
#define IDI_PECULIARMENU 1201
2在 OnSysCommand 函数中增加代码:
else if(nID==IDI_PECULIARMENU)
{
MessageBox("系统菜单","提示",MB_OK|MB_ICONINFORMATION);
}
扩展:在系统菜单里添加背景图片,为标题添加图标
1 :加载bitmap 图片IDB_MAIN
在onPaint函数中添加如下代码:
CDC*m_dc=this->GetDC();
CDC m_memdc;
m_memdc.CreateCompatibleDC(m_dc);
CBitmap m_bitmap;
m_bitmap.LoadBitmap(IDB_MAIN);
m_memdc.SelectObject(&m_bitmap);
CRect m_rect;
m_dc->BitBlt(0,0,800,700,&m_memdc,0,0,SRCCOPY);
m_bitmap.DeleteObject();
2:加载icon 图片作为标题栏图标:IDI_MAINMENU
之后直接更改m_hIcon的值即可:
m_hIcon = AfxGetApp()->LoadIcon(IDI_MAINMENU);
补充:如果是外部应用程序首先FindWindow()找到窗口
向窗口发送 WM_SECTION消息。
HICON hIcon=AfxGetApp()-> LoadIcon(IDI_YOUR_ICON)
AfxGetMainWnd()-> SendMessage(WM_SECTION,TRUE,(LPARAM)hIcon)
最后这个现在还没试过……
mfc 小程序---在系统菜单中添加菜单项