就是按一下键盘上的F12,自动将整个程序隐藏到托盘中,怎么做的?有这方面的例子吗?
解决方案 »
- 求教关于IE7提示"无法找到"http//....,请确保路径或Internet 地址正确"错误问题.
- AppWizard大虾来说一下!
- Popup Menu里的快捷键(Ctrl+X)怎么设?
- 怎么样通过VC++来产生经济效益呢?
- 如何实现悬浮窗口
- 如何将通信模块函数化,并形成一个动态连接库文件(DLL文件)
- 请huangbeyond进来解决问题。
- CRichEdit的文本颜色问题
- LINK : fatal error LNK1104: 无法打开文件“kernel32.lib”
- 怎么在VC中显示bmp,jpg,gif等文件格式?
- 我在对话框中动态创建了一个 CStatic 对象(用于显示图片),但这个就是不能 show 出来
- 如何定义一个全局对象,可以让程序中所有的函数和对象都可以访问它?
------------------------------------------------------------------------
显示图标:
// show ICON on the right of task bar.
NOTIFYICONDATA tnd;
tnd.cbSize=sizeof(NOTIFYICONDATA);
tnd.hWnd=this->m_hWnd;
tnd.uID=IDR_MAINFRAME;
tnd.uFlags=NIF_MESSAGE|NIF_ICON|NIF_TIP;
tnd.uCallbackMessage=WM_MINIICON;
tnd.hIcon=LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME));
strcpy(tnd.szTip,"SS7/SIU Monitor, Click to Display.");
Shell_NotifyIcon(NIM_ADD,&tnd);------------------------------------------------------------------------
注消图标:
NOTIFYICONDATA tnid;
tnid.cbSize=sizeof(NOTIFYICONDATA);
tnid.hWnd=this->m_hWnd;
tnid.uID=IDR_MAINFRAME;
Shell_NotifyIcon(NIM_DELETE,&tnid); //delete the icon-------------------------------------------------------------------------
恢复:
UINT uID; //icon ID
UINT uMouseMsg; //mouse action
POINT pt;
uID=(UINT) wParam;
uMouseMsg=(UINT) lParam;
if(uMouseMsg==WM_LBUTTONDOWN) //right click
{
switch(uID)
{
case IDR_MAINFRAME: //this dlg
GetCursorPos(&pt); //get screen postion
ShowWindow(SW_RESTORE); //restore the window to display
break;
default:
break;
}
}
else if(uMouseMsg==WM_RBUTTONDOWN)
{
}----------------------------------------------------------
完整内容事关产权,不能提供,原谅。
《魔高一丈2.0》开发实例源代码就是你要的了,哈哈,
如果你要用键盘控制,你只要把那个MOUSEHOOK改成KEYHOOK就可以了。
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
...
if(!::RegisterHotKey(this->m_hWnd,0Xa001,NULL,(UINT)VK_F4))
AfxMessageBox("RegisterHotKey failed!");
...
}BOOL CMainFrame::PreTranslateMessage(MSG* pMsg)
{
if (pMsg->message==WM_HOTKEY && pMsg->wParam==0Xa001)
{
ShowWindow(SW_HIDE);
}
return CMDIFrameWnd::PreTranslateMessage(pMsg);
}void CMainFrame::OnClose()
{
UnregisterHotKey(this->m_hWnd,0Xa001);
CMDIFrameWnd::OnClose();
}
这样也就行了。
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
...
if(!::RegisterHotKey(this->m_hWnd,0Xa001,NULL,(UINT)VK_F4))
AfxMessageBox("RegisterHotKey failed!");
...
}BOOL CMainFrame::PreTranslateMessage(MSG* pMsg)
{
if (pMsg->message==WM_HOTKEY && pMsg->wParam==0Xa001)
{
ShowWindow(SW_HIDE);
}
return CMDIFrameWnd::PreTranslateMessage(pMsg);
}void CMainFrame::OnClose()
{
UnregisterHotKey(this->m_hWnd,0Xa001);
CMDIFrameWnd::OnClose();
}
这样也就行了。
不过为什么非要用F12呢?