返回得到的菜单句柄,你枚举一下其各个项目就知道是怎么回事了。
直接对这个句柄添加删除修改菜单项就行了。菜单项对应的相应消息是 WM_SYSCOMMAND,你添加了菜单项,在WM_SYSCOMMAND 消息里面处理你的命令。
——没用过 vista , 任务栏接口是 ITastBarList,可以得到任务栏上的项目。
关于项目上的右键菜单,难道有好几种点击方法?没明白你说的意思。
你用 WM_INITMENU 拦截一下查看各子项字符串试试。
WIN7 任务栏定制 VC可用com ,主要是ITaskbarList接口,里面有任务栏 *** 作的各种接口,比如鲁大师这个进度条,用接口中SetProgressValue(hwd,6.3,10)方法就可以实现,具体可以msdn "ITaskbarList".这篇博客你可以参考下:http://www.cnblogs.com/zhujiecode/archive/2011/08/02/2125522.html
我现在也正在做这个问题,找了半天只有这一个方法其他都不行。不知道你有什么好方法没?在Hide.cpp中InitInstance()
CHideDlg dlgParent
dlgParent.Create(IDD_HIDE_DIALOG)
dlgParent.ShowWindow(SW_HIDE)
//dlgParent.ShowWindow(SW_SHOW)
CHideDlg dlg(&dlgParent)
m_pMainWnd = &dlg
int nResponse = dlg.DoModal()
dlgParent.DestroyWindow()
这样做的结果如果在CHideDlg.cpp中OnInitDialog()添加了加载图标菜单等都被加载俩次。所以我的做法是新加了一个什么都不显示的对话框ABC
我的代码
在Hide.cpp中InitInstance()
CAbcDlg dlg
m_pMainWnd = &dlg
int nResponse = dlg.DoModal()
if (nResponse == IDOK)
……
在Abc的OnCreate中(OnInitDialog里也可以吧)
if (dlg.DoModal() == IDOK) /*这个dlg是我在Abc中定义的类全局变量 CHideDlg dlg*/
OnOK()
else
OnCancel()
我这样虽然间接实现了不显示在任务栏但如果是Abc就是主窗口了吧(我也刚学)这样多了资源,而且一些处理要在CAbcDlg中处理
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)