Chinaunix首页 | 论坛 | 博客
  • 博客访问: 198142
  • 博文数量: 67
  • 博客积分: 2970
  • 博客等级: 少校
  • 技术积分: 685
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-23 11:36
文章分类

全部博文(67)

文章存档

2012年(2)

2011年(19)

2010年(46)

我的朋友

分类: WINDOWS

2011-08-23 15:31:44

如果是单纯滴给应用程序添加托盘图标,响应右键快捷菜单,则用好Shell_NotifyIcon、TrackPopupMenu、GetCursorPos这些函数就行。我想在程序启动后主界面消失(不是最小化,最小化在任务栏上仍然可见),然后只在托盘中显示一个图标。首先在重载CMainFrame::PreCreateWindow中添加cs.style &=~WS_VISIBLE,在CMainFrame::OnCreate中添加ShowWindow(SW_HIDE)或者在CMySDIApp::InitInstance中将m_pMainWnd->ShowWindow(SW_SHOW)参数改成SW_HIDE都或多或少的不好使,要么主界面仍在,要么就有闪烁,都没有用别人的软件的那种效果。。。
 
在网上找了一些资料后,最终实现了这种效果,我是这样写的:
在CMySDIApp::InitInstance中将m_pMainWnd->ShowWindow(SW_SHOW)参数改成SW_MINIMIZE,在CMainFrame::PreCreateWindow和CMainFrame::OnCreate不作窗口隐藏处理,重载CMainFrame::OnSize,对SIZE_MINIMIZED类型调用AddTaskbarIcon()、ShowWindow(SW_HIDE),重载CMainFrame::ActivateFrame,设置nCmdShow=SW_HIDE,这样就可以消除闪烁,程序启动时就只有一个托盘图标了:)。。。最后只要重载CMainFrame::OnClose中调用DelTaskbarIcon()就搞定。。。
 
阅读(2913) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~