首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

[新人]紧急怎么让程序最小化后不到托盘图标而是保留在任务栏

2012-04-05 
[新人求助]紧急!如何让程序最小化后不到托盘图标而是保留在任务栏程序有托盘图标,每次最小化都会到托盘,而

[新人求助]紧急!如何让程序最小化后不到托盘图标而是保留在任务栏
程序有托盘图标,每次最小化都会到托盘,而任务栏上不保留。
现在要求最小化时保留在任务栏,在界面最小化按钮的响应函数中,
将TrayIcon_Main->Minimize()改为Application->Minimize();
这样可以实现在界面点击最小化图标时,程序最小化到任务栏,但是当在任务栏上点击实现程序的最小化时,程序又自动最小化到托盘了,任务栏上还是没有。

请各位高手帮帮忙,不知道点击任务栏有什么消息事件呢?

[解决办法]

探讨
你怎么发两个地方。。。
哈哈。。沙发

[解决办法]
1、在Form的头文件的TForm类声明的private:下面添加:
void __fastcall OnMinMaxSize(TMessage &Msg); 
BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(WM_SYSCOMMAND, TMessage, OnMinMaxSize)
END_MESSAGE_MAP(TForm) 
2、在Form的单元文件中添加事件函数的定义:
void __fastcall TForm1::OnMinMaxSize(TMessage& Msg)

//允许最大化的时候双击标题栏也会最大化窗口。
//所以也要对WM_NCLBUTTONDBLCLK消息进行相应。 
if (Message.Msg == WM_NCLBUTTONDBLCLK) 
//在非客户区双击左键 

if (!bMaxed)
{//代码}
else
{//代码} }
if (Msg.WParam == SC_MINIMIZE)
{//加入自己的最小化时的事件}
else if (Msg.WParam == SC_MAXIMIZE)
{//加入自己的最大化时的事件}
TForm::Dispatch(&Msg); //将消息传给VCL以继续处理

这是你那个帖子2楼的消息处理函数,他写成一团了,看的晕。。

[解决办法]
不要把简单的事情复杂化。
C/C++ code
void __fastcall TForm1::TrayIcon1Minimize(TObject *Sender){    ShowWindow(Application->Handle, true);} 

热点排行