C++ Builder 实现托盘图标

在工程文件里面添加红色的代码.能够实现隐藏,但如果要在托盘显示图标,就应该看看下面的其它代码,我没有用TrayIcon控件.
对托盘图标的操作,这里没有给出代码.如果想要一个完整的例子,可以给我来信:lwqcny@163.com

WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
  try
  {
    Application->Initialize();
    Application->Title = "键盘监控器";
    Application->CreateForm(__classid(TForm1), &Form1);
    //增加两行,保证程序开始就隐藏窗口
    ShowWindow(Application->Handle,SW_HIDE);
    Application->ShowMainForm=false;


    Application->Run();
  }
  catch (Exception &exception)
  {
    Application->ShowException(&exception);
  }
//========================================================== =======
//========================================================== =======
void __fastcall TForm1::FormCreate(TObject *Sender)
{
//调用RegisterWindowMessage()函数来创建一个独一无二的消息编号,以确保没有冲突
ugIconMessage=RegisterWindowMessage("IconNotify");//

AddIcon();//添加托盘图标
Form1->Visible=false;//隐藏主窗口
}
//---------------------------------------------------------- -----------
void __fastcall TForm1::FormDestroy(TObject *Sender)
{
DeleteIcon();
}
//---------------------------------------------------------- ---------
void TForm1::AddIcon()//创建托盘区图标,这个函数自己定义
{
NOTIFYICONDATA icondata;//申请一个托盘区图标的结构变量
memset(&icondata,0,sizeof(icondata));//将结构变量的内容清零
icondata.cbSize=sizeof(icondata);
icondata.hWnd=Handle;//取得当前窗口的句柄
strncpy(icondata.szTip,"键盘监控器\n作者:seeker\n警告,不得用于非法用途!",sizeof(icondata.szTip));//输入鼠标经过该图标时的提示字符串
icondata.uID=Icon_ID;
icondata.hIcon=Application->Icon->Handle;//将程序图标作为托盘区的图标,当然你可以指定其它的,如上一句
icondata.uCallbackMessage=ugIconMessage;//取得回调信息变量,即图标上的操作消息
icondata.uFlags=NIF_MESSAGE|NIF_ICON|NIF_TIP;//当结构变量中成员hIcon、uCallbackMessage与szTip 出错时将给出错误标志
Shell_NotifyIcon(NIM_ADD,&icondata);//调用函数Shell_NotifyIcon()在任务栏布告区产生或删除一个图标
}                //NIM_ADD 表示产生,NIM_DELETE表示删除
//---------------------------------------------------------- ------------------
void TForm1::DeleteIcon()//删除任务栏布告区图标,这个函数自己定义
{
  NOTIFYICONDATA icondata;
  memset(&icondata,0,sizeof(icondata));
  icondata.cbSize=sizeof(icondata);
  icondata.hWnd=Handle;
  icondata.uID=Icon_ID;
  Shell_NotifyIcon(NIM_DELETE,&icondata);//删除图标
}
//---------------------------------------------------------- ---------------

posted on 2005-10-26 09:58  痛并快乐着  阅读(1885)  评论(0编辑  收藏  举报

导航