当前位置 : 主页 > 手机开发 > harmonyos >

托盘弹出气泡提示

来源:互联网 收集:自由互联 发布时间:2023-10-08
添加系统托盘的时候指定NIF_INFO就可以了 .h文件中: protected : void __fastcall WndProc(TMessage Message); private : // User declarations UINT CRN_TRAYICON_MESSAGE; // 托盘区响应消息 void __fastcall CrnAddTrayIcon();


添加系统托盘的时候指定NIF_INFO就可以了

.h文件中:

protected         :        


                  void          __fastcall WndProc(TMessage &Message);        


         private         :            // User declarations        


                  UINT          CRN_TRAYICON_MESSAGE;          // 托盘区响应消息        


                  void          __fastcall CrnAddTrayIcon();        


                  void          __fastcall CrnRemoveTrayIcon();





.cpp文件中:

#include <tchar.h>      


       #include <stdio.h>      


              


       //---------------------------------------------------------------------------      


       __fastcall TForm1::TForm1(TComponent* Owner)      


              : TForm(Owner)      


       {      


              CRN_TRAYICON_MESSAGE = ::RegisterWindowMessage(TEXT(       "IconNotify"       ));      


       }      


       //---------------------------------------------------------------------------      


       // 重载WndProc      


       void        __fastcall TForm1::WndProc(TMessage &Message)      


       {      


              if        (Message.Msg == WM_SYSCOMMAND)      


              {      


              if        (Message.WParam == SC_MINIMIZE)      


              {      


              CrnAddTrayIcon();      


              ::ShowWindow(Handle, SW_HIDE);      


              }      


              }      


              else        if        (Message.Msg == CRN_TRAYICON_MESSAGE && Message.LParam == WM_LBUTTONUP)      


              {      


              // 如果单击鼠标左键则显示窗体      


              ::ShowWindow(Handle, SW_SHOW);      


              // 使程序出现在任务栏      


              ::ShowWindow(Application->Handle, SW_SHOW);      


              


              CrnRemoveTrayIcon();      


              }      


              TForm::WndProc(Message);      


       }      


       //---------------------------------------------------------------------------      


       // 添加图标到托盘区      


       void        __fastcall TForm1::CrnAddTrayIcon()      


       {      


              NOTIFYICONDATA nid;      


              ::ZeroMemory(&nid,        sizeof       (nid));      


              


              nid.cbSize =        sizeof       (nid);      


              nid.hWnd = Handle;      


              nid.uID = NULL;      


              nid.uFlags = NIF_MESSAGE | NIF_ICON | NIF_INFO;      


              nid.hIcon = Application->Icon->Handle;      


              nid.uCallbackMessage = CRN_TRAYICON_MESSAGE;      


              nid.dwInfoFlags = NIIF_INFO;      


              nid.uTimeout = 1000;      


              _tcsncpy(nid.szInfo,      


              TEXT(       "最小化窗体时程序将隐藏到这里.\r\n"       )      


              TEXT(       "欢迎光临 www.ccrun.com"       ),      


              sizeof       (nid.szInfo));      


              _tcsncpy(nid.szInfoTitle, TEXT(       "我的应用程序"       ),        sizeof       (nid.szInfoTitle));      


              


              ::Shell_NotifyIcon(NIM_ADD, &nid);      


       }      


       //---------------------------------------------------------------------------      


       // 删掉托盘区的图标      


       void        __fastcall TForm1::CrnRemoveTrayIcon()      


       {      


              NOTIFYICONDATA nid;      


              ::ZeroMemory(&nid,        sizeof       (nid));      


              nid.cbSize =        sizeof       (nid);      


              nid.hWnd = Handle;      


              


              ::Shell_NotifyIcon(NIM_DELETE, &nid);      


       }





http://tieba.baidu.com.cn/p/401816277

***********  VC创建托盘的几个步骤  ******************* 

第一步:在***APP头文件中定义一个自定义消息WM_MYMESSAGE, 

#define MWM_MYMESSAGE WM_USER+5



第二步:创建一个函数向任务栏添加托盘图标,然后在需要调用它的地方调用即可.

NOTIFYICONDATA为包含任务栏托盘程序信息的结构体 
CreateIcon() 
{ 
//创建任务栏图标对象 
NOTIFYICONDATA tnd;    
tnd.cbSize=sizeof(NOTIFYICONDATA); 
//将当前程序托盘 
tnd.hWnd=this->m_hWnd;  //m_hWnd数据成员是一个HWND类型的公有变量 
tnd.uID=IDR_MAINFRAME; 
//定义托盘的属性:消息响应方式、图标、提示语言 
tnd.uFlags=NIF_ICON|NIF_MESSAGE|NIF_TIP; 
tnd.uCallbackMessage=WM_MYMESSAGE; 
//托盘图标的设置 
tnd.hIcon=LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME)); 
//托盘图标提示信息的编辑 
strcpy(tnd.szTip,"乐迷播放器,单击图标弹出窗口"); 
//向任务栏添加图标 
Shell_NotifyIcon(NIM_ADD,&tnd); 
}



第三步:利用向导自动生成鼠标左键按下函数 

void CMusicFanDlg::OnLButtonDown(UINT nFlags, CPoint point)  
{ 
// TODO: Add your message handler code here and/or call default 
PostMessage(WM_NCLBUTTONDOWN,HTCAPTION,MAKELPARAM(point.x, point.y)); 
CDialog::OnLButtonDown(nFlags, point); 
} 
第四步:利用向导生成系统消息响应函数WindowProc(),并在其中添加消息响应函数,代码如下:
LRESULT CMusicFanDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)  
{ 
// TODO: Add your specialized code here and/or call the base class 

switch(message) 
{ 

case WM_MYMESSAGE: 
 { 
 if(lParam==WM_RBUTTONUP||lParam==WM_LBUTTONUP) 
 {  
 if(markTray) //其中markTray为BOOL型,用于标志当点击托盘图标时是显示还是隐藏程序对话框. 
 {   
    this->ShowWindow(SW_SHOW); 
                m_PlayListDlg->ShowWindow(SW_SHOW); 
                m_LyricDlg->ShowWindow(SW_SHOW); 
markTray=FALSE; 
 } 
 else 
 { 
 this->ShowWindow(SW_HIDE); 
             m_PlayListDlg->ShowWindow(SW_HIDE); 
                 m_LyricDlg->ShowWindow(SW_HIDE); 
 markTray=TRUE; 
 } 


} 
break; 
 } 
  } 

return CDialog::WindowProc(message, wParam, lParam); 
}



 第五步: 关闭程序时取消托盘图标模式,创建一个函数,然后调用. 

void CMusicFanDlg::DelTrayPanel() 
{ 
//创建任务栏图标对象 
NOTIFYICONDATA tnd; 
tnd.cbSize=sizeof(NOTIFYICONDATA); 
//将当前程序托盘 
tnd.hWnd=this->m_hWnd;  //m_hWnd数据成员是一个HWND类型的公有变量 
tnd.uID=IDR_MAINFRAME; 
//定义托盘的属性:消息响应方式、图标、提示语言 
tnd.uFlags=NIF_ICON|NIF_MESSAGE|NIF_TIP; 
tnd.uCallbackMessage=WM_MYMESSAGE; 
//托盘图标的设置 
tnd.hIcon=LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME)); 
//托盘图标提示信息的编辑 
strcpy(tnd.szTip,"乐迷播放器,单击图标弹出窗口"); 
//向任务栏添加图标 

   //取消托盘图标模式 
Shell_NotifyIcon(NIM_DELETE ,&tnd); 

}
【文章原创作者:滨海网页制作公司 http://www.1234xp.com/binhai.html 欢迎留下您的宝贵建议】
上一篇:多国语言版快速解决方法
下一篇:没有了
网友评论