C++ Builder托盘控件

想用c++builder写一个.exe,需要在最小化的时候放在托盘里,是不是有什么控件?... 想用c++ builder写一个.exe,需要在最小化的时候放在托盘里,是不是有什么控件? 展开
 我来答
jinling1441
推荐于2016-03-04 · TA获得超过618个赞
知道小有建树答主
回答量:153
采纳率:0%
帮助的人:193万
展开全部
用的控件是:TrayIcon
具体用法如下:
在 Borland C++ Builder 5.0 中编写Tray程序是件很简单的事。在安装 Borland C++ Builder 5.0 时选择Full(完全)安装,安装完成后,在Samples组件页中有一个TrayIcon组件,它封装编写Tary所需的Window API函数,使用该组件编写Tary程序不用加一句程序代码,真是易如反掌。
首先,我们先看一下TrayIcon组件常用的属性:

属性说明
Animate设为true时,顺序更改Icons属性设置的图标
AnimateInterva设置更改图标的时间(单位:毫秒)
Hide设为true时,最小化时隐藏在任务栏上的标题栏
Hint设置鼠标移动到Tary图标上出现的提示信息
IconIndex设置图标索引值
Icons设置图标源(通常设置一个ImageList组件)
PopupMenu设置要弹出的菜单(通常设置一个PopupMenu组件)
PopupMenuOn设置触发弹出菜单的鼠标操作
RestoreOn设置恢复最小化到正常状态的鼠标操作
Visible设为true时,在任务栏最右边显示图标

鼠标操作说明:

值说明
imClick鼠标单击
imDoubleClick鼠标双击
imLeftClickUp单击鼠标左键,放开
imLeftDoubleClick双击鼠标左键
imMouseDown按下鼠标键
imMouseUp按下鼠标键,放开
imNone不设置鼠标操作
imRightClickUp单击鼠标右键,放开
imRightDoubleClick双击鼠标右键

下面让我们来编一个简单的Tary程序:

1、新建工程,添加一个TrayIcon组件、一个PopupMenu组件和一个ImageList组件。它们的Name属性

都用默认的名字:TrayIcon1、PopupMenu1、ImageList1。

2、设置TrayIcon1的属性,如下:
属性值 linux
Animate true
AnimateInterva 1000
Hide true
Hint Tary演示程序
IconIndex 0
Icons ImageList1
Name TrayIcon1
PopupMenu PopupMenu1
PopupMenuOn imRightClickUp
RestoreOn imDoubleClick
Visible true

3、双击PopupMenu1,弹出菜单设计器,随意地加入几个菜单项。

4、双击ImageList1,加入支持的图片(*.ico、*.bmp)。

到此,不用编写一句程序代码,一个简单的Tary程序就做好了。按F9编译运行,将鼠标移动到Tary上面就会出现“Tary演示程序”的提示信息;在Tary上单击鼠标右键弹出菜单Popmenu1;按下程序窗口的最小化按钮,程序最小化后隐藏任务栏上的标题栏;双击Tary将会恢复程序最小化;而且,Tary图标以1000毫秒(1秒)的速度变换。够简单了吧?!

TaryIcon组件的演示源程序在 Borland C++ Builder 5.0 安装目录下的\CBuilder5\Examples\Apps\TrayIcon。若你不想使用TaryIcon组件编写Tary,只想使用API函数,可以参考安装目录\CBuilder5\Examples\Controls\Traydemo下的源程序

注意以下几点:
1、这个控件的托盘图标要使用到TimageList控件,请设置其Icons属性和对应的TimageList关联就可以

了,如果图标要变化,TimageList中要有多个图标,用TrayIcon控件的IconIndex的值的改变来改变托

盘图标。
2、最小化和隐窗体应该用: TrayIconMe->Minimize()来实现
还原窗体用:TrayIconMe->Restore()。
3、至于菜单的弹出就在窗体上加一个PopupMenu控件就可以了,PopupMenu的设定和一般的设定没有什

么不同。然后把TrayIcon控件的PopupMenu属性和PopupMenu控件关联起来就可以了。当然,别忘了

设定一个PopupMenuOn属性,决定这个菜单的鼠标触发方式。
4、当鼠标指向托盘时,显出的字是TrayIcon的Hint属性来设定的
冉东恽兴旺
2020-03-27 · TA获得超过3836个赞
知道小有建树答主
回答量:3107
采纳率:28%
帮助的人:467万
展开全部
用的控件是:TrayIcon
具体用法如下:

Borland
C++
Builder
5.0
中编写Tray程序是件很简单的事。在安装
Borland
C++
Builder
5.0
时选择Full(完全)安装,安装完成后,在Samples组件页中有一个TrayIcon组件,它封装编写Tary所需的Window
API函数,使用该组件编写Tary程序不用加一句程序代码,真是易如反掌。
首先,我们先看一下TrayIcon组件常用的属性:
属性说明
Animate设为true时,顺序更改Icons属性设置的图标
AnimateInterva设置更改图标的时间(单位:毫秒)
Hide设为true时,最小化时隐藏在任务栏上的标题栏
Hint设置鼠标移动到Tary图标上出现的提示信息
IconIndex设置图标索引值
Icons设置图标源(通常设置一个ImageList组件)
PopupMenu设置要弹出的菜单(通常设置一个PopupMenu组件)
PopupMenuOn设置触发弹出菜单的鼠标操作
RestoreOn设置恢复最小化到正常状态的鼠标操作
Visible设为true时,在任务栏最右边显示图标
鼠标操作说明:
值说明
imClick鼠标单击
imDoubleClick鼠标双击
imLeftClickUp单击鼠标左键,放开
imLeftDoubleClick双击鼠标左键
imMouseDown按下鼠标键
imMouseUp按下鼠标键,放开
imNone不设置鼠标操作
imRightClickUp单击鼠标右键,放开
imRightDoubleClick双击鼠标右键
下面让我们来编一个简单的Tary程序:
1、新建工程,添加一个TrayIcon组件、一个PopupMenu组件和一个ImageList组件。它们的Name属性
都用默认的名字:TrayIcon1、PopupMenu1、ImageList1。
2、设置TrayIcon1的属性,如下:
属性值
linux
Animate
true
AnimateInterva
1000
Hide
true
Hint
Tary演示程序
IconIndex
0
Icons
ImageList1
Name
TrayIcon1
PopupMenu
PopupMenu1
PopupMenuOn
imRightClickUp
RestoreOn
imDoubleClick
Visible
true
3、双击PopupMenu1,弹出菜单设计器,随意地加入几个菜单项。
4、双击ImageList1,加入支持的图片(*.ico、*.bmp)。
到此,不用编写一句程序代码,一个简单的Tary程序就做好了。按F9编译运行,将鼠标移动到Tary上面就会出现“Tary演示程序”的提示信息;在Tary上单击鼠标右键弹出菜单Popmenu1;按下程序窗口的最小化按钮,程序最小化后隐藏任务栏上的标题栏;双击Tary将会恢复程序最小化;而且,Tary图标以1000毫秒(1秒)的速度变换。够简单了吧?!
TaryIcon组件的演示源程序在
Borland
C++
Builder
5.0
安装目录下的\CBuilder5\Examples\Apps\TrayIcon。若你不想使用TaryIcon组件编写Tary,只想使用API函数,可以参考安装目录\CBuilder5\Examples\Controls\Traydemo下的源程序
注意以下几点:
1、这个控件的托盘图标要使用到TimageList控件,请设置其Icons属性和对应的TimageList关联就可以
了,如果图标要变化,TimageList中要有多个图标,用TrayIcon控件的IconIndex的值的改变来改变托
盘图标。
2、最小化和隐窗体应该用:
TrayIconMe->Minimize()来实现
还原窗体用:TrayIconMe->Restore()。
3、至于菜单的弹出就在窗体上加一个PopupMenu控件就可以了,PopupMenu的设定和一般的设定没有什
么不同。然后把TrayIcon控件的PopupMenu属性和PopupMenu控件关联起来就可以了。当然,别忘了
设定一个PopupMenuOn属性,决定这个菜单的鼠标触发方式。
4、当鼠标指向托盘时,显出的字是TrayIcon的Hint属性来设定的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhyi0000
2009-08-05 · TA获得超过310个赞
知道答主
回答量:139
采纳率:0%
帮助的人:82.1万
展开全部
楼上的人家问的是BCB,不是VB,请看清再回答……
在 c++ builder 6.0里 有控件,在控件标签Samples下的TrayIcon控件,加进去就能用了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
haiandj
2009-08-05 · TA获得超过766个赞
知道小有建树答主
回答量:325
采纳率:0%
帮助的人:263万
展开全部
//.H
//---------------------------------------------------------------------------
#ifndef mainH
#define mainH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ComCtrls.hpp>
#include <ImgList.hpp>
#include <Menus.hpp>
#include "Trayicon.h"
#include "trayicon.h"
//---------------------------------------------------------------------------
class TFormMain : public TForm
{
__published: // IDE-managed Components
TPopupMenu *PopupMenu1;
TMenuItem *Restore1;
TMenuItem *N1;
TMenuItem *Exit1;
TImageList *ImageList1;
TCheckBox *VisibleCheck;
TCheckBox *AnimateCheck;
TCheckBox *HideCheck;
TTrayIcon *TrayIcon1;
TEdit *IntervalEdit;
TUpDown *IntervalUpDown;
void __fastcall HideCheckClick(TObject *Sender);
void __fastcall VisibleCheckClick(TObject *Sender);
void __fastcall Restore1Click(TObject *Sender);
void __fastcall Exit1Click(TObject *Sender);
void __fastcall AnimateCheckClick(TObject *Sender);
void __fastcall IntervalEditChange(TObject *Sender);
private: // User declarations
public: // User declarations
__fastcall TFormMain(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TFormMain *FormMain;
//---------------------------------------------------------------------------
#endif

//.CPP
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop

#include "main.h"
/---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "Trayicon"
#pragma link "trayicon"
#pragma resource "*.dfm"
TFormMain *FormMain;
//---------------------------------------------------------------------------
__fastcall TFormMain::TFormMain(TComponent* Owner)
: TForm(Owner)
{
TrayIcon1->Visible = VisibleCheck->Checked;
TrayIcon1->Hide = HideCheck->Checked;
TrayIcon1->AnimateInterval = atoi(IntervalEdit->Text.c_str());
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::HideCheckClick(TObject *Sender)
{
TrayIcon1->Hide = HideCheck->Checked;
Update();
}
//---------------------------------------------------------------------------

void __fastcall TFormMain::VisibleCheckClick(TObject *Sender)
{
TrayIcon1->Visible = VisibleCheck->Checked;
HideCheck->Enabled = VisibleCheck->Checked;
AnimateCheck->Enabled = VisibleCheck->Checked;
Update();
}
//---------------------------------------------------------------------------

void __fastcall TFormMain::Restore1Click(TObject *Sender)
{
TrayIcon1->Restore();
}
//---------------------------------------------------------------------------

void __fastcall TFormMain::Exit1Click(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------

void __fastcall TFormMain::AnimateCheckClick(TObject *Sender)
{
TrayIcon1->Animate = AnimateCheck->Checked;
if (AnimateCheck->Checked == false)
TrayIcon1->IconIndex = 0;
Update();
}
//---------------------------------------------------------------------------

void __fastcall TFormMain::IntervalEditChange(TObject *Sender)
{
TrayIcon1->AnimateInterval = atoi(IntervalEdit->Text.c_str());
}
//---------------------------------------------------------------------------
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kollen
2009-08-05 · TA获得超过237个赞
知道小有建树答主
回答量:384
采纳率:33%
帮助的人:137万
展开全部
托一个TrayIcon和一个PopupMenu就可以了,两个联上就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式