M
mill666
Unregistered / Unconfirmed
GUEST, unregistred user!
在网络上找到一个比较全面的自己画caption bar的教程:
http://www.mindspring.com/~cityzoo/ttlbar1.html
源代码可以从这个地方下载:
http://www.filesearching.com/cgi-bin/s?t=n&l=en&q=ftp.risp.ru/.3/language/delphi
里面有一个liltitle.zip,这就是源代码。
因为源代码是delphi 3的,
我用delphi 7,所以下载下来后有两个地方需要修改;运行的时候无法编译过去,在编译不过去的地方稍微改动一下,很简单的改动,对大家应当不难,可以说很简单;
就比如说里面的:TForm1.WMNCHitTest事件无法编译,就出现在ptinrect里面的第二个参数message.pos,所以就先定义一个Tpoint的变量pt,pt.X:=amessage.Pos.x;
pt.Y:=amessage.Pos.y;然后把message.pos都改为pt;
还有一个地方TForm1.WMNCLButtonDown事件里面的那些sendmessage函数的最后一个参数longint(pt)都改为Tmessage(Message).LParam;
还有TForm1.WMNCHitTest事件里面的Message.Result = HTNOWHERE改动为Message.Result = windows.HTNOWHERE,因为HTNOWHERE在comctls里面也有定义,会引起冲突,所以加个windows。
这样就可以运行这个窗体了;
是不是有点土??不够文章把自画窗体的过程说得很清楚了,你也可以改动其中一些地方达到自己想要的效果;
可是这个程序有个问题,我一直无法解决啊,大家帮我看看:
往窗体随便扔几个控件,运行,然后你随意地一直乱点窗口的client区,然后按住鼠标不懂,托到caption bar区,然后释放,或者resize窗口,直到出现滚动栏【因为你放置了控件,所以窗口小到一定程度就会出现滚动栏了】,反正就是随意的操作,特别就是点击窗口的client区,然后按住鼠标,移动鼠标到caption bar区,然后释放,来他个N次,运气好的时候就会出现如下的bug:
窗口好像死掉了,按caption bar的任何一个地方都不响应事件了。
不知道为什么??弄了很长事件都不知道为什么??
http://www.mindspring.com/~cityzoo/ttlbar1.html
源代码可以从这个地方下载:
http://www.filesearching.com/cgi-bin/s?t=n&l=en&q=ftp.risp.ru/.3/language/delphi
里面有一个liltitle.zip,这就是源代码。
因为源代码是delphi 3的,
我用delphi 7,所以下载下来后有两个地方需要修改;运行的时候无法编译过去,在编译不过去的地方稍微改动一下,很简单的改动,对大家应当不难,可以说很简单;
就比如说里面的:TForm1.WMNCHitTest事件无法编译,就出现在ptinrect里面的第二个参数message.pos,所以就先定义一个Tpoint的变量pt,pt.X:=amessage.Pos.x;
pt.Y:=amessage.Pos.y;然后把message.pos都改为pt;
还有一个地方TForm1.WMNCLButtonDown事件里面的那些sendmessage函数的最后一个参数longint(pt)都改为Tmessage(Message).LParam;
还有TForm1.WMNCHitTest事件里面的Message.Result = HTNOWHERE改动为Message.Result = windows.HTNOWHERE,因为HTNOWHERE在comctls里面也有定义,会引起冲突,所以加个windows。
这样就可以运行这个窗体了;
是不是有点土??不够文章把自画窗体的过程说得很清楚了,你也可以改动其中一些地方达到自己想要的效果;
可是这个程序有个问题,我一直无法解决啊,大家帮我看看:
往窗体随便扔几个控件,运行,然后你随意地一直乱点窗口的client区,然后按住鼠标不懂,托到caption bar区,然后释放,或者resize窗口,直到出现滚动栏【因为你放置了控件,所以窗口小到一定程度就会出现滚动栏了】,反正就是随意的操作,特别就是点击窗口的client区,然后按住鼠标,移动鼠标到caption bar区,然后释放,来他个N次,运气好的时候就会出现如下的bug:
窗口好像死掉了,按caption bar的任何一个地方都不响应事件了。
不知道为什么??弄了很长事件都不知道为什么??