永发信息网

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;//托盘为真
}
全部回答
  • 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 这个是设置显示时间长短的
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯