zoukankan      html  css  js  c++  java
  • 对话框学习4

    基于对话框的拖盘程序

    首先为C**Dlg类添加自定义消息WM_TRAY_NOTIFICATION

    并添加代码如下:

    afx_msg LRESULT CTrayDlg::OnTrayNotification(WPARAM wParam, LPARAM lParam)
    {
        switch (lParam){
        case WM_RBUTTONUP:
        case WM_LBUTTONDBLCLK:
            ShowWindow(SW_SHOW);
            TrayMessage(m_hWnd, NIM_DELETE, NULL, "");
        }
    
        return 0;
    }

    响应方式为右键单击或者左键双击

    然后添加全局函数TrayMessage

    BOOL TrayMessage(HWND hWnd, DWORD dwMessage, HICON hIcon, PSTR pszTip){
        BOOL bReturn;
        NOTIFYICONDATA NofityData;
        NofityData.cbSize = sizeof(NOTIFYICONDATA);
        NofityData.hWnd = hWnd;
        NofityData.uID = IDR_MAINFRAME;
        NofityData.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP;
        NofityData.uCallbackMessage = WM_TRAY_NOTIFICATION;
        NofityData.hIcon = hIcon;
        lstrcpyn(NofityData.szTip, pszTip, sizeof(NofityData.szTip));
        bReturn = Shell_NotifyIcon(dwMessage, &NofityData);
        if(hIcon)
            DestroyIcon(hIcon);
        return bReturn;
    }

    关键部分:

    NOTIFYICONDATA  http://baike.baidu.com/view/1873525.htm

    然后加入最小化处理事件(当然也可以不需要)

    void CTrayDlg::OnSysCommand(UINT nID, LPARAM lParam)
    {
        if ((nID & 0xFFF0) == IDM_ABOUTBOX)
        {
            CAboutDlg dlgAbout;
            dlgAbout.DoModal();
        }else if(nID == SC_MINIMIZE){
            TrayMessage(m_hWnd, NIM_ADD, NULL, "托盘实例");
            TrayMessage(m_hWnd, NIM_MODIFY, NULL, "托盘实例");
            ShowWindow(SW_HIDE);
        }
        else
        {
            CDialogEx::OnSysCommand(nID, lParam);
        }
    }

    最后为对话框添加一个按钮,并添加单击事件

    void CTrayDlg::OnBnClickedButton1()
    {
        // TODO: 在此添加控件通知处理程序代码
        TrayMessage(m_hWnd, NIM_ADD, NULL, "托盘实例");
        TrayMessage(m_hWnd, NIM_MODIFY, NULL, "托盘实例");
        ShowWindow(SW_HIDE);
    }

    现在还不会加载资源图标。。。慢慢学习吧!

  • 相关阅读:
    【poj2828】Buy Tickets
    【hdu2795】Billboard
    【hdu1394】Minimum Inversion Number
    【BZOJ1012】 【JSOI2008】最大数maxnumber
    【hdu】p1754I Hate It
    【线段树模板】
    Day1
    synchronized底层原理
    Java之浅拷贝和深拷贝
    图解算法——恢复一棵二叉搜索树(BST)
  • 原文地址:https://www.cnblogs.com/louzhang/p/2707045.html
Copyright © 2011-2022 走看看