如何在vc中实现将程序最小化到托盘区? 一个应用程序,专门实现事件的监听并处理事件.我想把她最小化到托盘区,在点击鼠标右键的时候弹出一个菜单,可以对菜单的各项操作,要如何实现啊?就是有点像SQL Server的服务器程序一样. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 www.codeproject.com,www.vckbase.com,www.vchelp.net里都有例子,自己找找吧! see this,can help you:http://www.codeproject.com/csharp/trayiconmenu01.asp 不好意思,搞错了,看这个:http://www.codeproject.com/useritems/system_tray.asp NOTIFYICONDATA myshell; myshell.cbSize=sizeof(NOTIFYICONDATA); myshell.hWnd=this->m_hWnd; myshell.uID=IDR_MAINFRAME; myshell.uFlags=NIF_MESSAGE|NIF_ICON|NIF_TIP; myshell.uCallbackMessage=WM_USER+100; HICON hicon=AfxGetApp()->LoadIcon(IDR_MAINFRAME); myshell.hIcon=hicon; if(hicon) DestroyIcon(hicon); char* buf; buf=new char [32]; wsprintf(buf,"%s%s%s","主叫:",m_localip," 没有呼叫"); strcpy(myshell.szTip,_T(buf)); ::Shell_NotifyIcon(NIM_ADD, &myshell);上面是添加按钮现面是响应消息,这是一个虚函数LRESULT CIPPhoneDlg::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam) { switch(message) { case WM_USER + 100: if(lParam == WM_LBUTTONDOWN) { if(!m_IsShow) { ::AfxGetApp()->m_pMainWnd->ShowWindow(SW_SHOWNORMAL); BringWindowToTop(); m_IsShow = TRUE; } else { ::AfxGetApp()->m_pMainWnd->ShowWindow(SW_HIDE); m_IsShow = FALSE; } } if(lParam == WM_RBUTTONDOWN) { CMenu popmenu; popmenu.LoadMenu(IDR_SAVE_PIC); CPoint pos; GetCursorPos(&pos); CMenu *psub = (CMenu *)popmenu.GetSubMenu(0); psub->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,pos.x,pos.y,this); popmenu.DestroyMenu(); } if(lParam == WM_LBUTTONDBLCLK) { if(!m_IsShow) { ::AfxGetApp()->m_pMainWnd->ShowWindow(SW_SHOWNORMAL); BringWindowToTop(); m_IsShow = TRUE; } else { ::AfxGetApp()->m_pMainWnd->ShowWindow(SW_HIDE); m_IsShow = FALSE; } } break; case WM_SYSCOMMAND: if(wParam==SC_MINIMIZE) { AfxGetApp()->m_pMainWnd->ShowWindow(SW_HIDE); m_IsShow = FALSE; } break; } return CDialog::DefWindowProc(message, wParam, lParam);} 打开数据库函数问题 请问如何将BYTE a[] 转化成 TCHAR b[] hook拦截send() 补充“我有 VC++实效编程百例(第二版)谁要其中的源代码?” C++字符串统计的问题!在线等 请教一下,关于指针的问提 怎样才能使CURSOR总在最前面,不会被视频流遮挡? 请教高手 怎样动态的创建一个按扭,以及改变他的属性,如长宽,样式等 请各位高手朋友推荐一本TCP/IP的书? 如何使CStatic显示一个图标时是透明的。(100分) 如何实现按数组编号的二进制逆序排列?
http://www.codeproject.com/csharp/trayiconmenu01.asp
http://www.codeproject.com/useritems/system_tray.asp
myshell.cbSize=sizeof(NOTIFYICONDATA);
myshell.hWnd=this->m_hWnd;
myshell.uID=IDR_MAINFRAME;
myshell.uFlags=NIF_MESSAGE|NIF_ICON|NIF_TIP;
myshell.uCallbackMessage=WM_USER+100;
HICON hicon=AfxGetApp()->LoadIcon(IDR_MAINFRAME);
myshell.hIcon=hicon;
if(hicon)
DestroyIcon(hicon);
char* buf;
buf=new char [32];
wsprintf(buf,"%s%s%s","主叫:",m_localip," 没有呼叫");
strcpy(myshell.szTip,_T(buf));
::Shell_NotifyIcon(NIM_ADD, &myshell);
上面是添加按钮
现面是响应消息,这是一个虚函数LRESULT CIPPhoneDlg::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
switch(message)
{
case WM_USER + 100:
if(lParam == WM_LBUTTONDOWN)
{
if(!m_IsShow)
{
::AfxGetApp()->m_pMainWnd->ShowWindow(SW_SHOWNORMAL);
BringWindowToTop();
m_IsShow = TRUE;
}
else
{
::AfxGetApp()->m_pMainWnd->ShowWindow(SW_HIDE);
m_IsShow = FALSE;
}
}
if(lParam == WM_RBUTTONDOWN)
{
CMenu popmenu;
popmenu.LoadMenu(IDR_SAVE_PIC);
CPoint pos;
GetCursorPos(&pos);
CMenu *psub = (CMenu *)popmenu.GetSubMenu(0);
psub->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,pos.x,pos.y,this);
popmenu.DestroyMenu();
}
if(lParam == WM_LBUTTONDBLCLK)
{
if(!m_IsShow)
{
::AfxGetApp()->m_pMainWnd->ShowWindow(SW_SHOWNORMAL);
BringWindowToTop();
m_IsShow = TRUE;
}
else
{
::AfxGetApp()->m_pMainWnd->ShowWindow(SW_HIDE);
m_IsShow = FALSE;
}
}
break;
case WM_SYSCOMMAND:
if(wParam==SC_MINIMIZE)
{
AfxGetApp()->m_pMainWnd->ShowWindow(SW_HIDE);
m_IsShow = FALSE;
}
break;
}
return CDialog::DefWindowProc(message, wParam, lParam);
}