zoukankan      html  css  js  c++  java
  • Delphi让所有的窗口的标题和图标显示在任务栏上

    Delphi:让所有的窗口的标题和图标显示在任务栏上
    在Delphi中,除了主窗口之外,当其它的窗口显示或切换到焦点时。默认情况下,窗口标题和图标并不会显示在任务栏中,为了实现像主窗口一样,每当窗口显示或焦点时,就把图标和标题显示在当前任务栏上,并高亮,可在相应窗口的单元文件中加入如下代码实现,谢谢!
    unit Unit2;
    interface
    uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs;
    type
    TForm2 = class(TForm)
    private
    { Private declarations }
    public
    { Public declarations }
    protected
    procedure CreateParams(var Params: TCreateParams); override; //重载此方法即可
    end;
    var
    Form2: TForm2;
    implementation
    {$R *.dfm}
    procedure Tform2.CreateParams(var Params:TCreateParams);
    begin
    inherited CreateParams(Params);
    Params.WndParent := GetDesktopWindow;
    end;
    end.
    程序分析
     
    当程序需要创建一个窗体、向系统发出要创建一个新窗体的WM_CREATE消息时,系统将指示程序调用CreateWnd方法来创建窗体,CreateWnd方法在创建窗体前,需要调用CreateParams过程来获得窗体的初始化参数,在获得这些参数后,最后再调用CreateWindowHandle方法创建一个窗体句柄,完成了一个窗体的创建工作。因此,如果我们要使某一窗体在任务栏上显示程序图标,就需要修改窗体的初始化参数,重载CreateParams过程。
    程序窗口的初始化参数被封装成一个TCreateParams类型的对象,该类型的定义如下所示:
    type
    TCreateParams = record
    {窗体的标题文字}
    Caption: PChar;
    {窗体的类型,比如WS_CHILD 、WS_DISABLED等}
    Style: DWORD;
    {扩展的窗体类型}
    ExStyle: DWORD;
    {窗体的左上角位置}
    X, Y: Integer;
    {窗体的宽、高}
    Width, Height: Integer;
    {该窗体的父窗体句柄}
    WndParent: HWND;
    {指向WM_CREATE消息LParam参数}
    Param: Pointer
    {该类包含了一些与窗体有关的信息,如鼠标光标、选单等}
    WindowClass: TWndClass;
    {该窗体的类名}
    WinClassName: array[0..63] of Char;
    end;
    CreateParams过程是当窗体创建时执行,它初始化窗体创建的参数记录。所以如果要显示某一窗体的图标,必须要提高该窗体的级别,即将它的父窗体置为Windows的桌面,桌面的句柄可以通过API函数GetDesktopWindow来获得,因此只要我们在重载函数体中添加语句“Params.WndParent
    := GetDesktopWindow;”,就可以实现窗体的图标显示,正如上例所演示的那样。

  • 相关阅读:
    WPF中回车后跳转至指定控件上
    WPF 中Devexpress GridControl无限高度问题
    WPF中使用DevExpress控件lookupedite
    [.Net 5.0] 10. WebApi 自托管(WinFrom、Wpf)
    [C#] 尝鲜.net6.0的C#代码热重载
    [WPF 学习] 18. 摄像头(肢解DirectShow)
    [WPF 学习] 17.WPF摄像头
    [WPF 学习] 16.WPF Bitmap to ImageSource的几种方式
    [opencv]吊诡的摄像头黑屏
    WPF 基于五点线性平滑曲线算法
  • 原文地址:https://www.cnblogs.com/blogpro/p/11446111.html
Copyright © 2011-2022 走看看