麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

系統(tǒng)托盤(pán)氣泡提示和右鍵菜單的實(shí)現(xiàn)

2019-11-18 11:13:33
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

WTL嵌入類(lèi)的架構(gòu)可以使整個(gè)程序很清楚,系統(tǒng)托盤(pán)氣泡提示、上下文菜單處理可以分別獨(dú)立出來(lái),以下是實(shí)現(xiàn)代碼,很清楚就不注釋了。基本上這兩個(gè)類(lèi)很少需要修改,因此我把它們放到了系統(tǒng)包含文件搜索路徑中。

//ContextMenu.h
#PRagma once
template
class CContextMenu
{
public:
BOOL CreateContextMenu(UINT ID_Menu)
{
T* pT = static_cast(this);
CMenu menu;
menu.LoadMenu(ID_Menu);
CMenu SubMenu(menu.GetSubMenu(0));
POINT pos;
GetCursorPos(&pos);
SubMenu.TrackPopupMenu(TPM_LEFTALIGN TPM_RIGHTBUTTON, pos.x, pos.y, pT->m_hWnd);
return TRUE;
}
};

//ShellIcon.h
#pragma once
#define WM_ICON WM_USER + 180
template
class CShellIcon : public MenuT
{
private:
NOTIFYICONDATA m_data;
UINT m_msgTaskbarRestart;
CString m_appName;
public:
CShellIcon()
{
m_appName.LoadString(IDS_APPNAME);
m_msgTaskbarRestart = RegisterWindowMessage(TEXT("TaskbarCreated"));
}
~CShellIcon()
{
Shell_NotifyIcon(NIM_DELETE, &m_data);
}
BOOL CreateShellIcon()
{
T* pT = static_cast(this);
SecureZeroMemory(&m_data, sizeof(m_data));
m_data.cbSize = sizeof(m_data);
m_data.hIcon = LoadIcon(_Module.get_m_hInst(), MAKEINTRESOURCE(IDR_MAINFRAME));
m_data.hWnd = pT->m_hWnd;
m_data.uID = IDR_MAINFRAME;
m_data.uFlags = NIF_ICON NIF_MESSAGE NIF_INFO NIF_Tip;
m_data.UCallbackMessage = WM_ICON;
m_data.dwInfoFlags = NIIF_USER;
strcpy_s(m_data.szInfoTitle, m_appName);
strcpy_s(m_data.szTip, m_appName);
return Shell_NotifyIcon(NIM_ADD, &m_data);
}
void ModifyToolTips(LPCTSTR info)
{
strcpy_s(m_data.szInfo, info);
}
BOOL DispalyToolTips()
{
return Shell_NotifyIcon(NIM_MODIFY, &m_data);
}
BOOL BalloonToolTips(LPCTSTR info)
{
ModifyToolTips(LPCTSTR info);
return DispalyToolTips();
}
BEGIN_MSG_MAP(CShellIcon)
MESSAGE_HANDLER(WM_ICON, OnIcon)
MESSAGE_HANDLER(m_msgTaskbarRestart, OnRestart)
MESSAGE_HANDLER(WM_SIZE, OnSize)
CHAIN_MSG_MAP(MenuT)
END_MSG_MAP()
LRESULT OnIcon(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
T* pT = static_cast(this); char t;
if (wParam != IDR_MAINFRAME) return 1;
switch(lParam)
{
case WM_RBUTTONUP:
t = *m_data.szInfo;
*m_data.szInfo = '/0';
Shell_NotifyIcon(NIM_MODIFY, &m_data);
pT->CreateContextMenu(MenuID);
*m_data.szInfo = t;
break;
case WM_LBUTTONUP:
pT->ShowWindow(SW_SHOW);
OpenIcon(pT->m_hWnd);
break;
//去掉下面的注釋可以使鼠標(biāo)懸停在圖標(biāo)上時(shí)出現(xiàn)氣泡提示,個(gè)人不太喜歡
case WM_MOUSEMOVE:
// DispalyToolTips(); break;
default:
;
}
return 0;
}
//處理EXPlorer外殼崩潰后任務(wù)欄重建,你會(huì)發(fā)現(xiàn)很多程序都沒(méi)處理,結(jié)果就是Explorer一崩潰
//圖標(biāo)就找不到了,假如最小化到任務(wù)欄更慘,還得用任務(wù)治理器關(guān)閉,這個(gè)函數(shù)我沒(méi)機(jī)會(huì)測(cè)試,希望有作用
LRESULT OnRestart(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
T* pT = static_cast(this);
SecureZeroMemory(&m_data, sizeof(m_data));
m_data.cbSize = sizeof(m_data);
m_data.hWnd = pT->m_hWnd;
m_data.uID = IDR_MAINFRAME;
Shell_NotifyIcon(NIM_DELETE, &m_data);
CreateShellIcon();
return 0;
}
//最小化到系統(tǒng)托盤(pán)
LRESULT OnSize(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
{
T* pT = static_cast(this);
if (pT->IsIconic()) pT->ShowWindow(SW_HIDE);
return 0;
}
};

//MyIconMenu.h
#pragma once
#include "stdafx.h"
#include
template
class CMyIconMenu : public CContextMenu
{
public:
BEGIN_MSG_MAP(CContextMenu)
COMMAND_ID_HANDLER(ID_RESUME, OnResume)
COMMAND_ID_HANDLER(ID_QUIT, OnQuit)
END_MSG_MAP()
LRESULT OnResume(Word /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
{
T* pT = static_cast(this);
pT->ShowWindow(SW_SHOW);
OpenIcon(pT->m_hWnd);
return 0;
}

LRESULT OnQuit(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
{
PostQuitMessage(0);
return 0;
}
};
三層交換技術(shù) 交換機(jī)與路由器密碼恢復(fù) 交換機(jī)的選購(gòu) 路由器設(shè)置專題 路由故障處理手冊(cè) 數(shù)字化校園網(wǎng)解決方案
  CContextMenu的使用



發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 久在线播放 | 午夜国产精品成人 | 欧美成人高清视频 | 久久成人在线观看 | 欧美成人精品h版在线观看 久久久久久三区 | 日本在线免费观看视频 | 国产免费观看电影网站 | 国产欧美亚洲精品 | 国产精品91在线 | 欧美高清视频一区 | 久久久国产电影 | 精品国产一区二区三区天美传媒 | 性盈盈盈影院 | 久久成人免费网站 | 男女羞羞视频 | 久久手机在线视频 | 成人精品aaaa网站 | 欧美a∨亚洲欧美亚洲 | 精品国产视频一区二区三区 | 久久欧美亚洲另类专区91大神 | 久草在线最新 | 狼伊千合综网中文 | 黄色免费在线网站 | 国产一级中文字幕 | jizzjizzjizz少妇 | 永久av在线免费观看 | 一区二区三视频 | 国产自91精品一区二区 | 久草最新网址 | 久久中文字幕在线观看 | 久久久成人精品视频 | 黄色免费播放网站 | 欧美亚洲综合网 | 国产成人精品午夜 | 国产成年人网站 | 国产啊v在线观看 | 黄网站在线播放视频免费观看 | hd性videos意大利复古 | 国产成人在线看 | 中文字幕视频在线播放 | 国产三级在线观看a |