30分呀!有点少;呵呵,谢谢,要给分的
重载createParams()就可以了;
procedure CreateParams(var Params: TCreateParams); override ;
procedure CreateParams(var Params: TCreateParams);
begin
inherited;
Params.WndParent := 0;
end;
重载createParams()就可以了;
procedure CreateParams(var Params: TCreateParams); override ;
procedure CreateParams(var Params: TCreateParams);
begin
inherited;
Params.WndParent := 0;
end;
procedure TForm1.IconOnClick(var message:TMessage);
var
p:TPoint;
begin
//如果按下的是双击则显示Form2
if((message.lParam=WM_LBUTTONDBLCLK) then
Form2.Show;
//如果按下的是鼠标右键,则显示弹出菜单
if(message.lParam=WM_RBUTTONDOWN)then
begin
GetCursorPos(p);
PopupMenu1.Popup(p.x,p.y);
end;
end;
如何实现!!源码???
procedure TControlE.ShowNotifyIcon(var ShowIconMsg:TWMSysCommand);
var
Icon:TIcon;
begin
if ShowIconMsg.CmdType=SC_MINIMIZE //如果是最小化消息
then begin
Icon:=TIcon.Create; //Icon变量用来装入任务栏图标
Icon.LoadFromFile('放图标的位置');
new(pTaskBarIcon);
with pTaskBarIcon^ do //给pTaskBarIcon赋值
begin
cbSize:=sizeof(TNotifyIconData);
Wnd:=ControlE.WindowHandle;
uID:=0;
uFlags:=NIF_ICON or NIF_MESSAGE or NIF_TIP;
uCallbackMessage:=WM_USER; //当在任务栏图标上发生鼠标事件时,
// 向Windows发送标准消息WM_USER
hIcon:=Icon.Handle;
StrCopy(szTip,'酷音酷放');
end;
Shell_NotifyIcon(NIM_ADD,pTaskBarIcon); //给通知域添加图标
ControlE.Visible:=false; //使音乐播放器窗口不可见
end
else //如果不是最小化消息
inherited; //将继承Windows处理WM_SYSCOMMAND时的方法
end;
还原过程:自己加上鼠标双击事件
ControlE.Visible:=True; //恢复音乐播放器窗口 Shell_NotifyIcon(NIM_DELETE,pTaskBarIcon); //删除任务栏图标 dispose(pTaskBarIcon); //释放pTaskBarIcon
这是我自己在做一个多媒体播放器的时候用的方法,自己完善一下就可以了!