mfc 小程序---在系统菜单中添加菜单项

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)

最后这个现在还没试过……