怎么在STATUBAR的panel 上加图片或图标?谁有计算机有关的图标?
如有可发给我或告知下载地址
[email protected]

解决方案 »

  1.   

    1. 在状态指示区上安装、更改、卸载图标
    Windows 95是基于事件驱动机制的操作系统。任何一个控件都是通过发消息或对系统消息
    的处理来实现功能的。状态指示区实际上也是一个标准控件,对它的控制和操纵与其他的标准
    控件一样,也是通过发消息和处理消息进行的。应用程序通过系统功能调用S h e l l _ N o t i f y I c o n向
    状态指示区发消息,它的函数原型如下:
    function Shell_NotifyIcon(dwMessage: DWORD; lpData: PNotifyIconData)
    : BOOL; stdcall;
    其中参数d w M e s s a g e是要发给状态指示区的消息,可以取以下三个值:
    • NIM_ADD 在状态指示区上增加一个图标。
    • NIM_MODIFY 修改一个状态指示区的图标。
    • NIM_DELETE 删除状态指示区的一个图标。
    L p D a t a是指向T N o t i f y I c o n D a t a A结构的指针,此结构是要增加的图标的信息。
    PNotifyIconData = ^TNotifyIconDataA
    TNotifyIconDataA = record
    cbSize : DWORD;
    Wnd : HWND;
    uID : UINT;
    uFlags : UINT;
    uCallbackMessage : UINT;
    hIcon : HICON;
    s z Tip : array [0..63] of AnsiChar;
    e n d ;
    各字段的含义如表1 6 - 6所示。
    在安装图标时,需要对结构的每一个字段都赋值。而当更改、卸载图标时,有些字段则可
    以不赋值。当更改图标信息时,除设置需要更改的内容外,要把c b S i z e、W n d、u I D设置成正
    确的值,还要按照更改的内容将u F l a g s调到相应的位置。例如,只更改图标的提示信息时,把
    c b S i z e , W n d , u I D设置为正确的值, s z Ti p赋值为要更改成的提示信息, u F l a g s赋值为4即可。需
    要删除图标时,只需要把c b S i z e、W n d、u I D设置成正确的值即可。2. 对状态指示区图标上鼠标事件的响应
    现在,我们已经在状态指示区上安装了自己的图标,但它并不产生任何实际效果。因为当
    应用程序接收到鼠标事件后,除了可以显示提示信息外,没有产生任何动作。我们现在要做的
    就是要响应图标上的鼠标事件。
    TNotifyIconDataA中各字段含义
    字段含义
    C b S i z e 记录T N o t i f y I c o n D a t a A的大小,设置为SizeOf( TNotifyIconDataA)
    W n d 接收状态指示区鼠标事件的窗口的句柄,例如: F o r m 1 . H a n d l e
    U I D 图标的I D (状态指示区鼠标事件的w P a r a参数的值)
    U F l a g s 此条消息的有效范围(低三位有效), 取值如下:
    NIF_MESSAGE: 0x1 // uCallbackMessage参数有效
    NIF_ICON: 0x2 // hIcon is valid参数有效
    NIF_TIP: 0x4 // szTip is valid参数有效
    U C a l l b a c k M e s s a g e 系统回送消息的I D
    H I c o n 显示在状态指示区上的图标的句柄
    S z Ti p 鼠标移动到图标上时系统显示的提示信息
    当在图标上移动、点击时,状态指示区会向应用程序发送如下的消息:
    messageID = uCallbackMessage
    wParam = uID
    lParam = mouse event (如: W M _ L B U T TO N D O W N )
    只需在主窗口的定义中,声明一个过程来响应这个消息,在它的实现部分就可以对消息进
    行处理了。3. 图标下载的网站遍地都是
      

  2.   

    弟兄,回头我给你发一些过来,几MB大的很~~~要不我用QQ给你传算啦
    39209814
    [email protected]
      

  3.   

    先放一个Panel,把Statusbar放在上面,在创建几个statusbar_panel,然后再在上面放Panel,在Panel中放Image就可以了。可以将它们的对齐方式设好,效果不错。
      

  4.   

    没必要这么复杂吧,设置STATUBAR的Item 为非text ,在自画事件里写就行
      

  5.   

    例如,利用TImage进行图像的显示
    procedure TForm1.BitBtn1Click(Sender: TObject);
    begin
      Image1.Parent := StatusBar1;
      Image1.Top := 2;
      Image1.Left:= 2;
    end;
      

  6.   

    oracle_lover(数据库情人)  说的是系统托盘吧
      

  7.   

    procedure TForm1.StatusBar1DrawPanel(StatusBar: TStatusBar;  Panel: TStatusPanel; const Rect: TRect);
    begin
      StatusBar1.Canvas.Draw(2, 6, Image1.Picture.Graphic);
    end;
      

  8.   

    状态栏允许放入其他控件需要扩展一下statusbar,加一个属性就行.分归我了.//----------------------------------------------------------------------////扩展StatusBar//加入特性:允许在状态条上加入任意控件typeTMStatusBar=Class(TStatusBar)privateprotectedpublicconstructor Create(AOwner: TComponent); override;publishedend;//TMStatusBar 事件扩展constructor TMStatusBar.Create(AOwner: TComponent);begininherited Create(AOwner);ControlStyle:= ControlStyle + [csAcceptsControls];end;
      

  9.   

    有人说是系统状态栏,有人说是Statusbar,到底是什么,只有请楼主出面解答了
      

  10.   

    用第三方组件StatusBarPro,OpenSource的,很好的,支持图片显示等功能
      

  11.   

    TO saien(有问必答)
    请问像你所言在Statubar加事件便能在其上加入其它控件,但是我试过不能啊!请教该如何才能做到像你所言可在其上加入其它控件呢?我的最终目的是想在它上面加入进度条!