龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > C/C++开发 >

制作固定大小的Form

时间:2009-12-22 15:42来源:未知 作者:admin 点击:
分享到:
固定的Form像一个对话框,何不试试下面的语句? C++ Builder 请参照Delphi的例子 Delphi 您可以覆写 CreateParams() 这个 TWinControl 的虚拟程序, 改变 form的 wc.Stylee, 将 WS_SYSMENU 这个旗标解除, 这样

  固定的Form像一个对话框,何不试试下面的语句?

  

  

C++ Builder

  

  

请参照Delphi的例子

  

  

Delphi

  

  

您可以覆写 CreateParams() 这个 TWinControl 的虚拟程序, 改变 form的 wc.Stylee, 将 WS_SYSMENU 这个旗标解除,

这样, 就不会有左上角的

  

  

SystemMenuBox 了.

  

  

至於不能移动.缩小/放大, 可以自已拦下 WM_NCHITTEST, 然後一概回应滑鼠点在视窗

  

  

Client 区域, 相信这个视窗就呆呆的不会动了.

  

  

详情可以查一下 Win32API Help 的 CreateWindow() 与 WM_NCHITTEST 的说明.

  

  

unit Unit1;

  

interface

  

  

uses

  

  

Windows, Messages, SysUtils, Classes, Graphics, Controls,

  

  

Forms, Dialogs, StdCtrls;

  

  

type

  

  

TForm1 = class(TForm)

  

  

Button1: TButton;

  

  

procedure Button1Click(Sender: TObject);

  

  

private

  

  

{ Private declarations }

  

  

procedure WMNCHitTest(var Msg: TMessage); message WM_NCHITTEST;

  

  

protected

  

  

procedure CreateParams(var Params: TCreateParams); override;

  

  

public

  

  

{ Public declarations }

  

  

end;

  

  

var

  

  

Form1: TForm1;

  

  

implementation

  

{$R *.DFM}

  

精彩图集

赞助商链接