如何让我的应用软件最小化或后台 运行
我有一款软件,总担心不小心把它关掉,因为关掉后就影响整个系统的运行,希望哪位大虾帮我解决这个问题,或让它后台运行,或者是最小化到右下脚;很急谢谢! 像QQ那样可以最小化到右下角!
[解决办法]
如果是窗口程序的话
两种方法:
1使用c++builder自带的tray,见C++builder的例子
2设置主窗口不可见
application->showmainform 好像是这个吧
现在手上没有c++builder的开发环境了
[解决办法]
使用Samples 里的TTrayIcon控件,使用让程序最小化到右小角
[解决办法]
//方法一:__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner){ TrayIcon1->Visible = true ;}//---------------------------------------void __fastcall TForm1::FormCreate(TObject *Sender){ ShowWindow(Application->Handle,SW_HIDE); Application->ShowMainForm=false; TrayIcon1->Minimize();}//---------------------------------------void __fastcall TForm1::TrayIcon1Restore(TObject *Sender){ ShowWindow(Application->Handle,SW_SHOW); Application->ShowMainForm=true; Form1->Visible = true;}//方法二USEFORM("Unit1.cpp", Form1);//---------------------------------------WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int){ try { Application->Initialize(); Application->CreateForm(__classid(TForm1), &Form1); Application->ShowMainForm = false ;//增加 Application->Run(); }//---------------------------------__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner){ Form1->TrayIcon1->Visible = true ; TrayIcon1->PopupMenu = PopupMenu1 ; TrayIcon1->PopupMenuOn = imRightClickUp;}//---------------------------------------void __fastcall TForm1::N1Click(TObject *Sender){ TrayIcon1->Restore(); Application->ShowMainForm = true; WindowState=wsNormal ; Form1->Visible = true;}
[解决办法]
后台运行是可以的,但要最小化到右下角就难了
HANDLE ahd=NULL; //全程(或放入form中)变量void __fastcall TForm1::Button1Click(TObject *Sender) //初始化{ WinExec("calc.exe",SW_SHOW); //运行计算器 Sleep(200); ahd=FindWindow(NULL,"计算器"); //找到窗口 if (ahd==NULL) { ShowMessage("Not Find!"); return; }}//---------------------------------------void __fastcall TForm1::Button2Click(TObject *Sender) //后台运行{ if (ahd==NULL) { return; } ShowWindow(ahd,SW_HIDE); //隐藏窗口}//---------------------------------------void __fastcall TForm1::Button3Click(TObject *Sender) //变为前台{ if (ahd==NULL) { return; } ShowWindow(ahd,SW_SHOW); //显示窗口}//----
[解决办法]
//Unit.h写如下声明void __fastcall WndProc(TMessage &Msg);BEGIN_MESSAGE_MAPMESSAGE_HANDLER(WM_CLOSE,TMessage,OnHotKey)END_MESSAGE_MAP(TForm)