实现 VC 最小化到 托盘
大家經常看到 程序 最小化到 托盤 但用C怎么實現呢 本人 試下哈 可以實現的 ~·~
main.cpp 修改如下
#define WM_CLICKBIT (WM_USER + 1) //定義消息
HINSTANCE hApp;
NOTIFYICONDATA nid;
BOOL WINAPI Main_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch(uMsg)
{
?? ??? //BEGIN MESSAGE CRACK
?? ??? HANDLE_MSG(hWnd, WM_INITDIALOG, Main_OnInitDialog);
?? ??? HANDLE_MSG(hWnd, WM_COMMAND, Main_OnCommand);
?? ??? HANDLE_MSG(hWnd,WM_CLOSE, Main_OnClose);
?? ??? HANDLE_MSG(hWnd, WM_SYSCOMMAND, Main_OnSysCommand); //多了這條消息
?? ???
?? ??? case WM_CLICKBIT:
?? {
if(wParam == IDI_ICONAPP)
?? ?? {
?? ?? switch(lParam)
?? ?? {
?? ?? ??? case WM_LBUTTONDBLCLK:
?? ?? ?? ShowWindow(hWnd, SW_SHOWNORMAL);
?? ?? ?? Shell_NotifyIcon(NIM_DELETE, &nid);
?? ?? ?? SetWindowPos(hWnd, HWND_TOP, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
?? ?? ?? break;
?? ?? ??? default:
?? ?? ShowWindow(hWnd, SW_HIDE);
?? ??? break;
?? ?? }
?? ?? }
?? }
?? break;
?? default:
?? break;
}
return FALSE;
}
void ShowPlate(HWND hwnd) //最小化到托盤
{
?? ZeroMemory(&nid, sizeof(NOTIFYICONDATA));
??? nid.cbSize = (DWORD)sizeof(NOTIFYICONDATA);
??? nid.hWnd = hwnd;
??? nid.uID = IDI_ICONAPP;
??? nid.uFlags = NIF_ICON|NIF_MESSAGE|NIF_TIP;
??? nid.uCallbackMessage = WM_CLICKBIT; //自定義的消息名稱
??? nid.hIcon = LoadIcon(hApp, MAKEINTRESOURCE(IDI_ICONAPP));
??? lstrcpy(nid.szTip, TEXT("Close QQ")); ?? //信息提示條
??? Shell_NotifyIcon(NIM_ADD, &nid); ?? //在托盤區添加圖標
}
void Main_OnSysCommand(HWND hwnd, UINT cmd, int x, int y)
{
if(SC_MINIMIZE == cmd)
{
?? ShowPlate(hwnd);
?? ShowWindow(hwnd, SW_HIDE);
?? return;
}
else
{
?? return;
}
}
main.h添加
extern HINSTANCE hApp;
void ShowPlate(HWND hwnd);
void Main_OnSysCommand(HWND hwnd, UINT cmd, int x, int y);
closeProcess.cpp(這是我自己創建的工程哈,這里是你自己創建的工程名)
int APIENTRY WinMain(HINSTANCE hInstance,
?? ?? ?? ?? ?? ?? HINSTANCE hPrevInstance,
?? ?? ?? ?? ?? ?? LPSTR ??? lpCmdLine,
?? ?? ?? ?? ?? ?? int ?? nCmdShow)
{
??? hApp = hInstance; //就多了這句
DialogBox(hInstance, MAKEINTRESOURCE(IDD_MAIN), NULL, Main_Proc);
return(0);
}
目前 在C FREE(一個很好用的IDE 下載地址)編譯通過
給大家一個 c free 源碼下載 工程需要 c free才能打開 但其中的最小化到托盤\MinGW3.4.5\最小化到托盤.exe 是可以用的
等有時間在傳個 VC的工程 給大家看看哈 若發現連接失效 請 給我留言 謝謝
VC工程已經實現 下載地址
轉載于:https://www.cnblogs.com/syxchina/archive/2009/08/29/2197718.html
總結
以上是生活随笔為你收集整理的实现 VC 最小化到 托盘的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CN Erlounge IV 讲师名单公
- 下一篇: jQuery入门[2]-选择器[转]