如果是单纯滴给应用程序添加托盘图标,响应右键快捷菜单,则用好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()就搞定。。。
阅读(2967) | 评论(0) | 转发(0) |