请问怎样把程序放到系统托盘里?谢谢,最好给我一个例子。

miss 2000-08-20 11:10:00
...全文
150 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
hotyei 2000-08-21
  • 打赏
  • 举报
回复
立即到http://pfan.126.com看看,昨天你有这样的文章,有代码,快。
Hank 2000-08-21
  • 打赏
  • 举报
回复
Main.h
private: // User declarations
unsigned int IconMessage; //定义的消息
void AddTrayIcon(); //在托盘上增加图标
void RemoveTrayIcon(); //从托盘中删除图标
void __fastcall WndProc(Messages::TMessage &Message);

void TForm1::AddTrayIcon()
{
NOTIFYICONDATA icondata;
memset(&icondata,0,sizeof(icondata));//将结构icondata的各域初始化为0
icondata.cbSize=sizeof(icondata);
icondata.hWnd=Handle;
strncpy(icondata.szTip,"流星雨工作室",sizeof(icondata.szTip));
icondata.hIcon=Application->Icon->Handle;
icondata.uCallbackMessage=IconMessage;
icondata.uFlags=NIF_MESSAGE|NIF_ICON|NIF_TIP;
Shell_NotifyIcon(NIM_ADD,&icondata);
}

void __fastcall TForm1::WndProc(Messages::TMessage &Message)
{
if(Message.Msg==IconMessage)
{
if(Message.LParam==WM_LBUTTONDBLCLK)
{
ShowWindow(this->Handle,SW_HIDE);
}
if(Message.LParam==WM_RBUTTONDOWN)
{
TPoint pos;
GetCursorPos(&pos);
TrackPopupMenu(Form1->QuickMenu->Handle,TPM_LEFTALIGN|TPM_RIGHTBUTTON,pos.x,pos.y,0,this->Handle,NULL);
}
return;
}
TForm::WndProc(Message);//对于其他的消息,调用基础类的WndProc函数让Windows进行缺省处理。
}
shines77 2000-08-21
  • 打赏
  • 举报
回复
托盘源代码,使用 Shell_NotifyIcon:

------------------------------
memset(&m_tnd, 0, sizeof(m_tnd));
m_tnd.cbSize = sizeof(NOTIFYICONDATA);
m_tnd.hWnd = pParent->GetSafeHwnd()? pParent->GetSafeHwnd() :
m_hWnd;
m_tnd.uID = uID;
m_tnd.hIcon = icon;
m_tnd.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP;
m_tnd.uCallbackMessage = uCallbackMessage;
_tcscpy(m_tnd.szTip, szToolTip);


// Set the tray icon
Shell_NotifyIcon(NIM_ADD, &m_tnd);

------------------------------

13,826

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧