实现360浏览器式样的窗体

来源:互联网 发布:民办学校前景知乎 编辑:程序博客网 时间:2024/05/25 16:37


 

实现360或迅雷样式窗体

标签: 360objectkeyboardintegerfilebutton
 4096人阅读 评论(2) 举报
 分类:
 

这个效果是使用DevExpressBar来完成的!

先看效果图:

360风格,迅雷风格

具体代码如下:

[delphi] view plain copy
 print?
  1. unit Unit1;  
  2. interface  
  3. uses  
  4.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  
  5.   Dialogs, Buttons, dxBar, cxClasses, Menus, ExtCtrls, StdCtrls,  
  6.   dxGDIPlusClasses;  
  7. type  
  8.   TForm1 = class(TForm)  
  9.     dxBarManager1: TdxBarManager;  
  10.     dxBarDockControl1: TdxBarDockControl;  
  11.     dxBarManager1Bar1: TdxBar;  
  12.     New1: TdxBarButton;  
  13.     Open1: TdxBarButton;  
  14.     Save1: TdxBarButton;  
  15.     SaveAs1: TdxBarButton;  
  16.     Print1: TdxBarButton;  
  17.     PrintSetup1: TdxBarButton;  
  18.     Exit1: TdxBarButton;  
  19.     File1: TdxBarSubItem;  
  20.     Undo1: TdxBarButton;  
  21.     Repeatcommand1: TdxBarButton;  
  22.     Cut1: TdxBarButton;  
  23.     Copy1: TdxBarButton;  
  24.     Paste1: TdxBarButton;  
  25.     PasteSpecial1: TdxBarButton;  
  26.     Find1: TdxBarButton;  
  27.     Replace1: TdxBarButton;  
  28.     GoTo1: TdxBarButton;  
  29.     Links1: TdxBarButton;  
  30.     Object1: TdxBarButton;  
  31.     Edit1: TdxBarSubItem;  
  32.     NewWindow1: TdxBarButton;  
  33.     ile1: TdxBarButton;  
  34.     Cascade1: TdxBarButton;  
  35.     ArrangeAll1: TdxBarButton;  
  36.     Hide1: TdxBarButton;  
  37.     Show1: TdxBarButton;  
  38.     Window1: TdxBarSubItem;  
  39.     Contents1: TdxBarButton;  
  40.     Index1: TdxBarButton;  
  41.     Commands1: TdxBarButton;  
  42.     Procedures1: TdxBarButton;  
  43.     Keyboard1: TdxBarButton;  
  44.     SearchforHelpOn1: TdxBarButton;  
  45.     utorial1: TdxBarButton;  
  46.     HowtoUseHelp1: TdxBarButton;  
  47.     About1: TdxBarButton;  
  48.     Help1: TdxBarSubItem;  
  49.     SpeedButton1: TSpeedButton;  
  50.     SpeedButton2: TSpeedButton;  
  51.     SpeedButton3: TSpeedButton;  
  52.     Label1: TLabel;  
  53.     Panel1: TPanel;  
  54.     procedure FormCreate(Sender: TObject);  
  55.     procedure SpeedButton1Click(Sender: TObject);  
  56.     procedure SpeedButton3Click(Sender: TObject);  
  57.     procedure SpeedButton2Click(Sender: TObject);  
  58.     procedure Label1MouseDown(Sender: TObject; Button: TMouseButton;  
  59.       Shift: TShiftState; X, Y: Integer);  
  60.   private  
  61.     procedure wmnchittest(var msg: twmnchittest); message wm_nchittest;  
  62.   protected  
  63.     procedure CreateParams(var Params: TCreateParams); override;  
  64.   public  
  65.     procedure InitView;  
  66.   end;  
  67. var  
  68.   Form1: TForm1;  
  69. implementation  
  70. {$R *.dfm}  
  71. procedure TForm1.InitView;  
  72. begin  
  73.   SetWindowLong(Handle, { 当前窗体句柄 }  
  74.     GWL_STYLE, { 表示当前是要设置新的窗体(普通)样式 }  
  75.     // 得到指定窗体信息  
  76.     GetWindowLong(Handle, GWL_STYLE)  
  77.     and (not WS_CAPTION)); { 去掉样式(s)中的“标题”样式 }  
  78.   Height := ClientHeight;  
  79.   Width := ClientWidth;  
  80.   //  Image1.Picture.Assign(Application.Icon);  
  81. end;  
  82. procedure TForm1.wmnchittest(var msg: twmnchittest);  
  83. begin  
  84.   inherited;  
  85.   //  if (htclient = msg.result) then  
  86.   //    msg.result := htcaption;  
  87. end;  
  88. procedure TForm1.FormCreate(Sender: TObject);  
  89. begin  
  90. //  InitView;  
  91.   Label1.Caption := self.Caption;  
  92. end;  
  93. procedure TForm1.SpeedButton1Click(Sender: TObject);  
  94. begin  
  95.   Close;  
  96. end;  
  97. procedure TForm1.SpeedButton3Click(Sender: TObject);  
  98. begin  
  99.   if self.WindowState = wsNormal then  
  100.     self.WindowState := wsMaximized  
  101.   else  
  102.     self.WindowState := wsNormal  
  103. end;  
  104. procedure TForm1.SpeedButton2Click(Sender: TObject);  
  105. begin  
  106.   Application.Minimize;  
  107. end;  
  108. procedure TForm1.Label1MouseDown(Sender: TObject; Button: TMouseButton;  
  109.   Shift: TShiftState; X, Y: Integer);  
  110. const  
  111.   SC_DragMove = $F012;  
  112. begin  
  113.   ReleaseCapture;  
  114.   self.Perform(WM_SysCommand, SC_DragMove, 0);  
  115. end;  
  116. procedure TForm1.CreateParams(var Params: TCreateParams);  
  117. begin  
  118.   BorderStyle := bsNone;  
  119.   inherited;  
  120. //  Params.ExStyle := Params.ExStyle or WS_EX_CONTROLPARENT;//WS_EX_STATICEDGE;  
  121.   Params.Style := Params.Style or WS_EX_APPWINDOW;// or WS_SIZEBOX;  
  122. end;  
  123. end.  

 

对应的窗体%E

0 0
原创粉丝点击