无标题窗体的问题,要求用api函数解决!!! 一个无标题窗口,上面有一个panel组件,如何实现拖动这个panel组件来移动窗口?以及当panel组件对齐方式为client时,如何实现改变窗体的大小? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不用API倒是好解决,直接用API,不会,也相信会很麻烦,要拦截系统消息 Unit Main;InterfaceUses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, StdCtrls;Type TForm1 = Class(TForm) Procedure OnDragFrm(Var Msg: TMessage); Message WM_NCHitTest; //定义一个消息处理,WM_NCHitTest这个消息是用于移动窗口的事件的 Private { Private declarations } Public { Public declarations } End;Var Form1: TForm1;Implementation{$R *.dfm}Procedure TForm1.OnDragFrm(Var Msg: TMessage);Begin Inherited; If msg.Result = htClient Then msg.Result := htCaption;End;End. wm_nchittest的意思是在鼠标移动或者点击时,向鼠标所在窗口发送的消息。 If msg.Result = htClient Then msg.Result := htCaption;的意思是你点击在客户区相当于点击标题栏。去查SDK改变窗体大小去用wm_size消息 几位的方法都是在没有放置client对齐方式的控件时可以解决这种问题,但在放置了clint对齐方式的控件后就不可以实现了。这个我试过了,这也是我指明放一个client对齐方式的panel的原因。不知道还有没有其它的方法可以解决。 那你有没有使过当panel收到消息的时候能不能把这个消息传递给from 在Panel的OnMouseMove事件中加入: ReleaseCapture; Perform(WM_SYSCOMMAND, $F012, 0); 在Panel的OnMouseDown事件中加入: ReleaseCapture; Perform(WM_SYSCOMMAND, $F012, 0); xzhifei(飞) 老兄的方法我回云试。这好像是改移动的吧!如果能更详细一些就更好了。 速结~~~ 用到dll,作安装程序时必须注册吗? 是不是Table属性设置问题? 为什么我使用quickreport preview之后怎么只能显示一条记录,在线等 帮忙看看 数据库软件在我的机上正常,但在其他机上不正常? 通过ADO连接Oralce的问题 very简单的问题,一定给分! Delphi 网口调试助手 源码 一个关于TextOut 的问题 帮忙分析以下提示信息 寫過這個程序以後再也不用ado了
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls;Type
TForm1 = Class(TForm)
Procedure OnDragFrm(Var Msg: TMessage); Message WM_NCHitTest;
//定义一个消息处理,WM_NCHitTest这个消息是用于移动窗口的事件的 Private
{ Private declarations }
Public
{ Public declarations }
End;Var
Form1: TForm1;Implementation{$R *.dfm}Procedure TForm1.OnDragFrm(Var Msg: TMessage);
Begin
Inherited;
If msg.Result = htClient Then
msg.Result := htCaption;
End;End.
msg.Result := htCaption;
的意思是你点击在客户区相当于点击标题栏。去查SDK改变窗体大小去用wm_size消息
不知道还有没有其它的方法可以解决。
ReleaseCapture;
Perform(WM_SYSCOMMAND, $F012, 0);
ReleaseCapture;
Perform(WM_SYSCOMMAND, $F012, 0);
如果能更详细一些就更好了。