bcb系统栏提示

摘自

  • ccrun用户头像
  • ccrun
  • (妖哥 低调 冷静 专注 敬业)
#9楼 得分:0回复于:2010-01-27 15:21:56

 

 

 

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

.h文件中:

C/C++ code
   
   
protected : void __fastcall WndProc(TMessage & Message); private : // User declarations UINT CRN_TRAYICON_MESSAGE; // 托盘区响应消息 void __fastcall CrnAddTrayIcon(); void __fastcall CrnRemoveTrayIcon();



.cpp文件中:

C/C++ code
   
   
#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); }
上述代码在Windows7 + CBuilder6中编译通过,当最小化窗体时就可以看到效果了。 
效果图:
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值