系最小化后,怎么让它显示在系统的托盘里?请教!
解决方案 »
- 数据库连接时为什么异常处理不好用。
- 两个霎时间相减如(2004-1-14)-(2004-12-7)=多少天?
- 再请教伪装IP问题(接收)
- 高分:"MyGina.dll"哪位高手有这个文件,用于屏蔽CTRL+ALT+DELETE??
- 如何用vb或delphi程序代码使自己的可执行文件(.EXE)成为打开某种扩展名的文件的默认打开程序
- 为何assigned(s)总为true
- 在dbgrid中显示金额时带千分号的问题
- 关于MDIForm和MDIChild的又一个小问题
- 有关DLL的问题
- 用TWebBrowser时,如何判断一个超级连接是可浏览的网页还是可下载的文件
- 高手请进:Webbrowse打开窗口,怎样在动态生成的新的WebBrowse中取得打开的URL地址;
- 有什么好办法判断当前记录是否是记录集中最后一条记录?
procedure wmsyscommand(var Msg: TWMSysCommand); message WM_SYSCOMMAND;procedure TForm1.wmsyscommand(var Msg: TWMSysCommand);
begin
if Msg.CmdType = SC_MINIMIZE then
ShowMessage('最小化');
inherited;
end;
icnApp.LoadFromFile(ExtractFilePath(Application.ExeName)+'hualong.ico');
ndApp.cbSize := sizeof(NotifyIconData);
ndApp.Wnd := handle;
ndApp.uID := 0;
ndApp.uFlags := NIF_MESSAGE or NIF_ICON or NIF_TIP;
ndApp.uCallbackMessage := WM_TRAYNOTIFY;
ndApp.hIcon := icnApp.Handle;
StrPLCopy(ndApp.szTip,'湖州短信专线通讯', 63); //在任务栏状态区添加图标
Shell_NotifyIcon(NIM_ADD, @ndApp);
然后最小化的时候hide就可以了
这样在托盘区就是有图标的了。
是用CB做的。希望可以对你有用:private: // User declarations
void __fastcall AddTrayIcon();
void __fastcall DeleteTrayIcon(); void __fastcall MyNotify(TMessage&Msg);
BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(WM_MYNOTIFY,TMessage,MyNotify)
END_MESSAGE_MAP(TForm);
在.cpp里:
void __fastcall TForm1::AddTrayIcon()
{
NOTIFYICONDATA tnd;
PSTR pszTip="托盘图标范例";
lstrcpyn(tnd.szTip,pszTip,sizeof(tnd.szTip));
tnd.cbSize =sizeof(NOTIFYICONDATA);
tnd.hWnd =Handle;
tnd.uID =ID_MYICON;
tnd.uFlags =NIF_MESSAGE|NIF_ICON|NIF_TIP;
tnd.uCallbackMessage =WM_MYNOTIFY;
tnd.hIcon =Application->Icon->Handle;
Shell_NotifyIcon(NIM_ADD,&tnd);}void __fastcall TForm1::DeleteTrayIcon()
{
NOTIFYICONDATA tnd;
tnd.cbSize =sizeof(NOTIFYICONDATA);
tnd.hWnd =Handle;
tnd.uID =ID_MYICON;
tnd.uFlags =NIF_MESSAGE|NIF_ICON|NIF_TIP;
tnd.uCallbackMessage =WM_MYNOTIFY;
tnd.hIcon =Application->Icon->Handle;
Shell_NotifyIcon(NIM_DELETE,&tnd);}void __fastcall TForm1::MyNotify(TMessage& Msg)
{
POINT MousePos;
switch(Msg.LParam)
{
case WM_RBUTTONUP:
GetCursorPos(&MousePos);
PopupMenu1->PopupComponent=Form1;
SetForegroundWindow(Handle);
PopupMenu1->Popup(MousePos.x,MousePos.y);
break;
case WM_LBUTTONUP:
Show();
break;
default :
break;
}
TForm1::Dispatch(&Msg);
}
void __fastcall TForm1::CheckBox1Click(TObject *Sender)
{
if(CheckBox1->Checked)
{
AddTrayIcon();
}
else
{
DeleteTrayIcon();
}
Button1->Enabled=CheckBox1->Checked;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Hide();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N1Click(TObject *Sender)
{
Show();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N2Click(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormDestroy(TObject *Sender)
{
DeleteTrayIcon();
}