回 帖 发 新 帖 刷新版面

主题:托盘程序

我做了一个托盘程序,想实现如下功能,窗体最小化后,双击鼠标左键,窗体不再跳出,单击鼠标右键有菜单跳出。
请大侠们指教!

回复列表 (共7个回复)

沙发

在BCB6 中增加 TrayIcon组件(在Samples页签下)

设置
Form1->Visible = false;                
Form1->TrayIcon1->Visible = true;
为窗体不可见,tray可见,反向设置为窗体可见,tray不可见

tray的菜单要先制作一个子菜单(PopupMenu),然后加到TrayIcon组件的PopupMenu属性中,这样在右键的时候就能弹出菜单了

板凳

如何使程序一启动就只显示在右下角的任务栏里

3 楼

想程序一开始就只显示在托盘上,在Form1->Create()事件在加入:
Form1->Visible = false;                
Form1->TrayIcon1->Visible = true;
就行了

4 楼

恩,我试着做了下这个程序,很奇怪,Form1还是可见,添加了popupMenu1了,托盘处右击没反应

什么原因???

添加的代码;

仅仅

void __fastcall TForm1::FormCreate(TObject *Sender)
{
        Form1->Visible=false;
        Form1->TrayIcon1->Visible=true;

}
//------------------------------------------------------------------

void __fastcall TForm1::N2Click(TObject *Sender)//退出程序
{
        exit(1);
}
//-----------------------------------------------------------------
void __fastcall TForm1::N1Click(TObject *Sender)//打开主窗口
{
        Form1->Visible=true;
}

真是郁闷!![em17]

5 楼

在这个FormCreate()的函数里面写是没有用的,因为那时窗体正在创建中啊,可以打开工程的实现文件。如果没有改名字就是应该叫project1.cpp,在他的try里面添加以下几行代码就可以了:
try
{
Application->Intialize;

6 楼

在这个FormCreate()的函数里面写是没有用的,因为那时窗体正在创建中啊,可以打开工程的实现文件。如果没有改名字就是应该叫project1.cpp,在他的try里面添加以下几行代码就可以了:
try
{
     Application->Initialize();
     ShowWindow(Application->Handle,SW_HIDE);
     Application->ShowMainForm=false;
}

7 楼

然后再在FormCreate()函数里面写相应的加载托盘的程序就可以了

我来回复

您尚未登录,请登录后再回复。点此登录或注册