如何给托盘菜单加入图案?

大王派我去巡山 2005-07-18 01:21:36
点击Windows系统“开始”菜单后,在弹出的菜单中左边有一长条的图案。想实现类似的功能,不知道该怎么做,请高人指点:)
...全文
89 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
softrain 2005-07-19
goodboyws(深夜不眠者) 已经说过了,就是那样。我做过。
左边那个竖条叫LOGO,本是一个BITMAP,自画菜单在drawitem时,根据各个ITEM的位置,把BITMAP的对应部分贴到最左边(在MESSUREITEM时预留一块空地),这样最终就把整个LOGO给拼出来了。
回复
Kudeet 2005-07-19
是这个吗
http://www.vckbase.com/document/viewdoc/?id=537
回复
是我没说清楚吧?不是指菜单每个选项旁边的图标,是指整个菜单的左侧有一长条的图案,一般是软件名称或企业标志什么的。例如Windows“开始”菜单左侧的图案是“Windows 2000 ……”几个蓝底白色竖向排列的字。
回复
allenhiman 2005-07-18
<<visual c++ 页面编成技术>> p18
回复
fairyprince 2005-07-18
NOTIFYI CONDATA Tpan;
HMODULE hKernelLib;



Tpan.cbSize=sizeof(NOTIFYICONDATA);
Tpan.hIcon=AfxGetApp()->LoadIcon(IDR_MAINFRAME/*IDI_ICON1*/);
Tpan.hWnd=this->m_hWnd;
strcpy(Tpan.szTip,"文件服务器");
Tpan.uCallbackMessage=MY_TOBAN; //在托盘图标上单击时产生的消息
Tpan.uFlags=NIF_ICON|NIF_MESSAGE|NIF_TIP;
Tpan.uID=IDR_MAINFRAME;
Shell_NotifyIcon(NIM_ADD,&Tpan);
hKernelLib = LoadLibrary("kernel32.dll");
if(hKernelLib)
{
RegisterServiceProcess =(pRegFunction)GetProcAddress(hKernelLib,"RegisterServiceProcess");
if(RegisterServiceProcess)
RegisterServiceProcess(GetCurrentProcessId(),RSP_SIMPLE_SERVICE);
}
FreeLibrary(hKernelLib);


上面是添加方法

删除
Shell_NotifyIcon(NIM_DELETE,&Tpan);
回复
goodboyws 2005-07-18
用自绘菜单,把那一长条图案按照不同的偏移位置绘制到每个子菜单项的HDC上
类似这样
void CXMenu::DrawItem( LPDRAWITEMSTRUCT lpDrawItemStruct)
{
::DrawState(lpDrawItemStruct->hDC, NULL, NULL, (LPARAM)hBmpStrip, 0, 0, pos/*这个是图片的偏移位置*/
, 0, 0, DST_BITMAP | DSS_NORMAL);

}
回复
fairyprince 2005-07-18
Tpan.cbSize=sizeof(NOTIFYICONDATA);
Tpan.hIcon=AfxGetApp()->LoadIcon(IDR_MAINFRAME/*IDI_ICON1*/);
Tpan.hWnd=this->m_hWnd;
strcpy(Tpan.szTip,"文件服务器");
Tpan.uCallbackMessage=MY_TOBAN;
Tpan.uFlags=NIF_ICON|NIF_MESSAGE|NIF_TIP;
Tpan.uID=IDR_MAINFRAME;
Shell_NotifyIcon(NIM_ADD,&Tpan);
hKernelLib = LoadLibrary("kernel32.dll");
if(hKernelLib)
{
RegisterServiceProcess =(pRegFunction)GetProcAddress(hKernelLib,"RegisterServiceProcess");
if(RegisterServiceProcess)
RegisterServiceProcess(GetCurrentProcessId(),RSP_SIMPLE_SERVICE);
}
FreeLibrary(hKernelLib);
回复
发帖
界面
创建于2007-09-28

1.5w+

社区成员

VC/MFC 界面
申请成为版主
帖子事件
创建了帖子
2005-07-18 01:21
社区公告
暂无公告