如何自画窗体的标题栏(包括最大化最小化关闭按钮)及边框?资料代码相关网站均可!(50分)

  • 主题发起人 主题发起人 lixx
  • 开始时间 开始时间
L

lixx

Unregistered / Unconfirmed
GUEST, unregistred user!
如何自画窗体的标题栏(包括最大化最小化关闭按钮)及边框?资料、代码、相关网站均可!
 
自己做一个嘛,把原先的form1.borderstyl 改为bsnone
然后自己放这PANEL,画呀!
到于消息嘛,也可自己处理呀!
用perform函数
 
发送 WM_NCPAINT 消息

example :

private
{ Private declarations }
procedure WMNCPaint(var Msg : TWMNCPaint); message WM_NCPAINT;
procedure TForm1.WMNCPaint(var Msg: TWMNCPaint);
var
dc : hDc;
Pen : hPen;
OldPen : hPen;
OldBrush : hBrush;
begin
inherited;
dc := GetWindowDC(Handle);
msg.Result := 1;
Pen := CreatePen(PS_SOLID, 1, RGB(255, 0, 0));
OldPen := SelectObject(dc, Pen);
OldBrush := SelectObject(dc, GetStockObject(NULL_BRUSH));
Rectangle(dc, 0,0, Form1.Width, Form1.Height);
SelectObject(dc, OldBrush);
SelectObject(dc, OldPen);
DeleteObject(Pen);
ReleaseDC(Handle, Canvas.Handle);
end;
 
那最大化最小化关闭按钮也可以这么画?
用这种方法可以做金山词霸那样的效果来?(不要告诉我用某某控件!)
 
用控件不行吗?很多控件都可以实现你说的功能。或者看看控件源码不就知道了吗?
 
画图!·
 
很多skins技术是这样的:
先把windows标准窗体中的 标题栏 (也就是那个蓝条)全部去然后自己再一重新画个标题栏。
我的想法是:
能否不去标题栏,而是改变一下标题栏比如:重新画一下画条、最大化最小化按钮什么的。
 
何必畫圖?堆積木不就行了,而且每塊積木都有自帶的消息,拿來用就行了.
 
》fancy105
看来你我两人的基本出发点不太一样(这非常正常),我只是想知道能不能象我说的那样实现
(如果不能实现也就罢了,我不会死抠的)
而您的观点能实现这个功能就行。
如果我着急要用这个功能的话,肯定会象您说得那样找个控件、堆个积木实现就完事了。
 
用API应该可以实现,不过我不知道用哪个,我给你查查吧。
 
用form的canvas画呀,画好了之后,再判断鼠标点击的消息,再处理一下就可以了!!
应该是这样吧,只是我的想法,我没有实现过!呵呵~~~[:)]
 
有没有类似金山词霸界面的源码呢?我想学习一下(最好是C++语言的)推荐一下!
(直接自绘标题栏及最大化最小化关闭按钮)
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
559
import
I
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部