关于任务栏应用程序 当然可以了,project里面没有窗体不就行了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 procedure TForm1.FormCreate(sender:TObject); begin SetWindowLong(Application,Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW); end; 从技术方面来说,一个任务栏应用程序非常象普通的应用程序,它有一个消息循环,相应Windows的消息来完成相应的功能。 Procedure RunTrayApplication; Var Msg : TMsg; Begin CreateWindow; AddTrayIcon; While GetMessage(Msg,0,0,0) do Begin TranslateMessage(Msg); DispatchMessage(Msg); End; DeleteTrayIcon; End; 你能看到:所有需要做的工作是创建一个窗口,注册一个图标到任务栏,设置它的消息循环,最后关闭它。当然,必须还有增加其他代码完成相应的功能,但是,它是真的不需要担心。 让我们从窗口的创建开始。实际上,这个窗口是不是能在任务栏上能见到的窗口。相应的,这个窗口只是处理消息循环、其它父类的工作。任务窗口(Windows 95 & NT)句柄创建消息(例如鼠标单击等)和将消息发到我们的窗口。 Procedure CreateWindow; Var WC : TWndClass; W : hWnd; Begin With WC do Begin Style := 0; lpfnWndProc := @WndProc; cbClsExtra := 0; cbWndExtra := 0; hIcon := 0; hCursor := 0; hbrBackground := 0; lpszMenuName := nil; lpszClassName := 'MyTrayIconClass'; hInstance := System.hInstance; end; RegisterClass(WC); W := Windows.CreateWindow('MyTrayIconClass','MyVeryOwnTrayIconWindow', ws_OverlappedWindow,0,0,0,0,0,0,hInstance,nil); ShowWindow(W,sw_Hide); UpdateWindow(W); MainWindow := W; End; 这个窗口使用普通的窗口函数创建。注意这个窗口的类型是“ws_OverlappedWindow”,但是这个尺寸是0,并且它是隐藏的,所有,它将不会显示出来,但是他还是有窗体的程序。 请教 请问delphix下双缓冲是自动开启的吗? 求救,如何将word文件内容转化为文本文件? ★★★★★★欢迎下载CSDN浏览器!! 再线关注。急呀。。请各位大侠帮忙delphi7+mysql+adoquery+dbgrid 帮忙给个建议(成都的最好) sendbuf 与 sendtext的区别? 找高手会delphi的.帮我解决一下问题. 请问谁知道让IIS5支持中文?(其它地方人气太差了) 急......... 一个关于TTreeview的问题! Delphi经典编程资源,精彩不容错过。国内经典软件源码大集合,技巧荟萃,Delphi园地正式开通,请刷新…… 关于图像(BMP)的连接?
begin
SetWindowLong(Application,Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW);
end;
Var Msg : TMsg;
Begin
CreateWindow;
AddTrayIcon;
While GetMessage(Msg,0,0,0) do Begin
TranslateMessage(Msg);
DispatchMessage(Msg);
End;
DeleteTrayIcon;
End;
你能看到:所有需要做的工作是创建一个窗口,注册一个图标到任务栏,设置它的消息循环,最后关闭它。当然,必须还有增加其他代码完成相应的功能,但是,它是真的不需要担心。 让我们从窗口的创建开始。实际上,这个窗口是不是能在任务栏上能见到的窗口。相应的,这个窗口只是处理消息循环、其它父类的工作。任务窗口(Windows 95 & NT)句柄创建消息(例如鼠标单击等)和将消息发到我们的窗口。 Procedure CreateWindow;
Var
WC : TWndClass;
W : hWnd;
Begin
With WC do Begin
Style := 0;
lpfnWndProc := @WndProc;
cbClsExtra := 0;
cbWndExtra := 0;
hIcon := 0;
hCursor := 0;
hbrBackground := 0;
lpszMenuName := nil;
lpszClassName := 'MyTrayIconClass';
hInstance := System.hInstance;
end;
RegisterClass(WC);
W := Windows.CreateWindow('MyTrayIconClass','MyVeryOwnTrayIconWindow',
ws_OverlappedWindow,0,0,0,0,0,0,hInstance,nil);
ShowWindow(W,sw_Hide);
UpdateWindow(W);
MainWindow := W;
End;
这个窗口使用普通的窗口函数创建。注意这个窗口的类型是“ws_OverlappedWindow”,但是这个尺寸是0,并且它是隐藏的,所有,它将不会显示出来,但是他还是有窗体的程序。