vc托盘气泡提示的时间问题
答案:3 悬赏:40 手机版
解决时间 2021-01-29 06:24
- 提问者网友:wodetian
- 2021-01-28 07:20
vc托盘气泡提示的时间问题
最佳答案
- 五星知识达人网友:天凉才是好个秋
- 2021-01-28 08:57
曾经提供的一个个例子
void CCaptureDlg::AddIcon()
{
NOTIFYICONDATA data={0};
data.cbSize=sizeof(NOTIFYICONDATA);
CString strToolTip=_T("单击这里可以取消托盘咿");
//CString strTitle,strInfo;
strToolTip.LoadString(IDS_ICONTIP);
data.hIcon=GetIcon(0);
data.hWnd=GetSafeHwnd();
_tcscpy_s(data.szInfoTitle,8,_T("Capture")); //气泡提示标题
_tcscpy_s(data.szInfo,ARRAYSIZE(data.szInfo),_T("-_-进入托盘状态咿!")); //气泡提示信息
data.uTimeout = 1500; //超时值1.5秒,即显示1.5秒后自动退出气泡提示
_tcscpy_s(data.szTip,20,strToolTip);
data.uCallbackMessage=IDM_SHELL;//用户定义的回调消息
data.uFlags=NIF_ICON|NIF_MESSAGE |NIF_TIP | NIF_INFO;//添加 标识
data.dwInfoFlags =NIIF_INFO;
data.uID=98;
if(!Shell_NotifyIcon(NIM_ADD,&data))
MessageBox(_T("NotifyIcon"),_T("Error") ,0);
ShowWindow(SW_HIDE); //这里是隐藏主窗口
bTray=TRUE;//托盘为真
}
void CCaptureDlg::AddIcon()
{
NOTIFYICONDATA data={0};
data.cbSize=sizeof(NOTIFYICONDATA);
CString strToolTip=_T("单击这里可以取消托盘咿");
//CString strTitle,strInfo;
strToolTip.LoadString(IDS_ICONTIP);
data.hIcon=GetIcon(0);
data.hWnd=GetSafeHwnd();
_tcscpy_s(data.szInfoTitle,8,_T("Capture")); //气泡提示标题
_tcscpy_s(data.szInfo,ARRAYSIZE(data.szInfo),_T("-_-进入托盘状态咿!")); //气泡提示信息
data.uTimeout = 1500; //超时值1.5秒,即显示1.5秒后自动退出气泡提示
_tcscpy_s(data.szTip,20,strToolTip);
data.uCallbackMessage=IDM_SHELL;//用户定义的回调消息
data.uFlags=NIF_ICON|NIF_MESSAGE |NIF_TIP | NIF_INFO;//添加 标识
data.dwInfoFlags =NIIF_INFO;
data.uID=98;
if(!Shell_NotifyIcon(NIM_ADD,&data))
MessageBox(_T("NotifyIcon"),_T("Error") ,0);
ShowWindow(SW_HIDE); //这里是隐藏主窗口
bTray=TRUE;//托盘为真
}
全部回答
- 1楼网友:轻雾山林
- 2021-01-28 10:53
notifyicondata m_tnid 设置成员函数
最后 ondestroy()里 删除系统托盘 ::shell_notifyicon(nim_delete,&m_tnid);
//////////////////定义系统托盘///////////////////////////
m_tnid.cbsize=sizeof(notifyicondata);//设置结构大小//
m_tnid.hwnd=this->m_hwnd;//设置图标对应的窗口
m_tnid.uflags=nif_message|nif_icon|nif_tip;//图标属性
m_tnid.ucallbackmessage=mywm_notifyicon;//应用程序定义的回调消息id
////////////设置notifyicondata结构///////////
cstring sztooltip;
sztooltip=_t("cctimer 2.5");
_tcscpy(m_tnid.sztip, sztooltip);//帮助信息
m_tnid.uid=idr_mainframe;//应用程序图标
hicon hiconx;
hiconx=afxgetapp()->loadicon(idi_icon2);
m_tnid.hicon=hiconx;//图标句柄
pnotifyicondata m_ptnid=&m_tnid;
::shell_notifyicon(nim_add,m_ptnid);//增加图标到系统盘
if(hiconx)::destroyicon(hiconx);
//////////////////////////////
/////////////////////////////
///////////////////////////
lresult cshutdowndlg::windowproc(uint message, wparam wparam, lparam lparam)
{
switch(message)
{
case mywm_notifyicon:
//如果是用户定义的消息
if(lparam==wm_lbuttondblclk)
{
//鼠标双击时主窗口出现
afxgetapp()->m_pmainwnd->showwindow(sw_show);
afxgetapp()->m_pmainwnd->showwindow(sw_restore);
::setforegroundwindow(this->m_hwnd);
}
else if(lparam==wm_rbuttonup) //鼠标右键单击弹出选单
{
readregautorun();
::setforegroundwindow(this->m_hwnd);
//bcmenu menu;
//cmenu menu;
//m_menu.setmenudrawmode(true);
//m_menu.loadmenu(idr_menu1); //载入事先定义的选单
// m_menu.setbitmapbackground(rgb(188,188,188));
//m_menu.loadtoolbar(idr_toolbar1);
//menu.enablemenuitem(id_menuautoplay, mf_enabled);
// menu.setbitmapbackground(rgb(12,58,255));
//m_menu.seticonsize(16,16);
//m_menu.setxpbitmap3d(true);
// cmenu *pmenu=(bcmenu *)menu.getsubmenu(0);
bcmenu *psub = (bcmenu *)m_menu.getsubmenu(0);
//cmenu *pmenu=menu.getsubmenu(0);
cpoint pos;
getcursorpos(&pos);
psub->setmenudrawmode(bcmenu_drawmode_xp);
psub->setxpbitmap3d(true);
psub->trackpopupmenu(tpm_leftalign|tpm_rightbutton,pos.x,pos.y,this);
// m_menu.destroymenu();
}
break;
}
return cdialog::windowproc(message, wparam, lparam);
}
- 2楼网友:鱼忧
- 2021-01-28 10:09
nid.uTimeout = 1000;
uTimeout 这个是设置显示时间长短的
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯