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

    作者:BuildNewApp
    出处:http://syxchina.cnblogs.comBuildNewApp.com
    本文版权归作者、博客园和百度空间共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则作者会诅咒你的。
    如果您阅读了我的文章并觉得有价值请点击此处,谢谢您的肯定1。
  • 相关阅读:
    详细讲解mysql 主从复制原理
    Golang语言快速上手到综合实战笔记(Go语言、Beego框架、高并发聊天室、爬虫)
    每个人都应该知道的25个Git命令
    docker 记录
    MySQL主从复制数据同步,常见问题总结
    详解mysql 主从复制原理
    算法系列15天速成——第十天 栈
    算法系列15天速成——第二天 七大经典排序【中】
    算法系列15天速成——第一天 七大经典排序【上】
    算法系列15天速成——第四天 五大经典查找【上】
  • 原文地址:https://www.cnblogs.com/syxchina/p/2197718.html
Copyright © 2020-2023  润新知