步骤一、如何点击窗口缩小时将窗口隐藏
步骤二、然后在任务栏托盘区加上一个图标
步骤三、双击托盘小图标窗口将立即弹出
步骤二、然后在任务栏托盘区加上一个图标
步骤三、双击托盘小图标窗口将立即弹出
解决方案 »
- 动态创建的客户端,事件绑定onread事件出错,//编译出错 incompatible type:'method pointer and regular procedure'请帮忙看看
- 如何给ADOConnection指定连接字符串
- QReport打印多份时,如何记录打印份数的序号??
- 请问在98下能否安装delphi7.0?谁有delphi5安装版,能否发一个给我?
- 如何获得本机的IP地址,子网掩码和网关?如果有多个本地连接时又该如何获取?(急...........)
- 关于线程报错的问题,小弟急!!!,各位大侠请赐教!!!!
- 一个关于DBGrid的问题,想了N久,急!!!!!!!!谢谢各位高手了!!!!!!!!!!!!!!
- 请问,谁会,请多多指教
- 我的OFFICES2000序列号没了,请大家告诉我吧! 在线等
- 求助,急! 怎样用delphi做个PLC仿真系统
- 怎样在服务器上读取和保存文件!
- 为一个表,增加一个布尔类型的虚拟字段,用来判定某条记录是否被选择?
http://tech.sina.com.cn/c/2001-09-25/6083.html
//设置图标
NOTIFYICONDATA m_TrayIcon;
m_TrayIcon.cbSize = (DWORD)sizeof(NOTIFYICONDATA);
m_TrayIcon.hWnd = this->m_hWnd;
m_TrayIcon.uID = IDR_MAINFRAME;
m_TrayIcon.uFlags = NIF_ICON|NIF_MESSAGE|NIF_TIP ;
m_TrayIcon.uCallbackMessage = WM_TASKCLICK; //自定义消息
m_TrayIcon.hIcon = LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDR_MAINFRAME)); //显示的图标
strcpy(m_TrayIcon.szTip, "XXXXXXX"); //提示文字
//缩小到任务栏
Shell_NotifyIcon(NIM_ADD, &m_TrayIcon);
ShowWindow(SW_HIDE);恢复窗口
在自定义的消息处理函数中添加
Shell_NotifyIcon(NIM_DELETE, &m_TrayIcon);
this->ShowWindow(SW_SHOW);
Shell_NotifyIconA。该函数需要两个参数,其中一个是TnotifyIconDataA结构,需在主窗体中增加TnotifyIconDataA类型的全局变量ntida。 3.定义消息mousemsg,并编写主窗体的mousemessage消息处理函数,此函数说明在图标上用鼠标左键单击时,会打开应用程序窗口;用鼠标右键单击时,会弹出一个选单。 下面给出步骤2和3的实现代码: unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Menus, shellapi; const mousemsg = wm_user + 1; //自定义消息,用于处理用户在图标上点击鼠标的事件 iid = 100; //用户自定义数值,在TnotifyIconDataA类型全局变量ntida中使用 type TForm1 = class(TForm) ...... private //自定义消息处理函数,处理鼠标点击图标事件 procedure mousemessage(var message: tmessage); message mousemsg; public { Public declarations } end; var Form1: TForm1; ntida: TNotifyIcondataA; //用于增加和删除系统状态图标 implementation {.DFM} procedure TForm1.mousemessage(var message: tmessage); var mousept: TPoint; //鼠标点击位置 begin inherited; if message.LParam = wm_rbuttonup then begin //用鼠标右键点击图标 getcursorpos(mousept); //获取光标位置 popupmenu1.popup(mousept.x, mousept.y); //在光标位置弹出选单 end; if message.LParam = wm_lbuttonup then begin //用鼠标左键点击图标 //显示应用程序窗口 ShowWindow(Handle, SW_SHOW); //在任务栏上显示应用程序窗口 ShowWindow(Application.handle, SW_SHOW); SetWindowLong(Application.Handle, GWL_EXSTYLE, not (GetWindowLong(Application.handle, GWL_EXSTYLE) or WS_EX_TOOLWINDOW AND NOT WS_EX_APPWINDOW)); end; message.Result := 0; end
下载:http://delphibox.com/article.asp?articleid=34有DEMO,楼主自己看可以解决的