实现 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工程已经实现 下载地址

posted @ 2009-08-29 20:43  BuildNewApp  阅读(664)  评论(0编辑  收藏  举报