窗体caption自绘失败,怎么搞 应该是你的弹出窗体遮挡再消失后,自绘窗体并没有马上得到焦点,所以不能激活 FormActivate 事件 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 画标题栏要响应WM_NCPAINT消息。还是把窗口设置成无边框,做个假的标题栏吧 procedure TForm1.FormPaint(Sender: TObject);begin DrawCaption;end;上面这个事件是不是就是响应WM_NCPAINT呢?貌似也没用 水平是比较差,不好意思,呵呵,我拦截了这个消息,但还是不行type TForm1 = class(TForm) private { Private declarations } procedure DrawCaption; procedure WMNCPaint(var Message:TWMNCPaint);message WM_NCPAINT; public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.DrawCaption;var ACanvas: TCanvas;begin ACanvas := TCanvas.Create; try ACanvas.Handle := GetWindowDC(Self.Handle); with ACanvas do begin Brush.Color := clActiveCaption; Font.Name := 'Arial'; Font.Size := 10; Font.Color := clCaptionText; Font.Style := [fsBold]; TextOut(GetSystemMetrics(SM_CYMENU) + GetSystemMetrics(SM_CXBORDER), Round((GetSystemMetrics(SM_CYCAPTION) - Abs(Font.Height)) / 2) + 1, ' SwissDelphiCenter'); end; finally ReleaseDC(Self.Handle, ACanvas.Handle); ACanvas.Free; end;end;procedure TForm1.WMNCPaint(var Message: TWMNCPaint);begin inherited ; DrawCaption;end;一弹出别的窗体,还是会把form的caption弄的消失掉 刚才试验了一下,我添加了两个消息 procedure WMNCPaint(var Message:TWMNCPaint);message WM_NCPAINT; procedure WMNCActivate(var Message:TWMNCActivate);message WM_NCACTIVATE;在不带皮肤的DELPHI程序里面,可以实现,但是放到DEV皮肤里面,发现没用,我该怎么改呢 等待答案,希望在DEV皮肤里面试验一下 如果这样子做的话,我的关闭按钮,最小化,最大化之类怎么放置呢,因为我假如我放置panel,肯定是在mainmenu下面啊, 用PopupMenu弹出。现在的很多软件都没主菜单了,即使有,也默认隐藏。你都用主菜单这么老土的东西了,还搞什么自绘? delphi 将数据库内容生成word文档 如何获取DBGrid单元格背景色? Mastering Delphi 7第12章的ListServ例子程序打不开 简单的数据库操作,可能逻辑有问题? 能不能为combobox添加水平滚动条?请关注! 关于DELPHI6简体中文版!!! 来者有分 谁知道delphi3.0 编程参考手册的电子书籍下载的网子? 我想修改dbase表的结构,我只有foxpro5.0,难道非要装吗?谁有什么小工具? Delphi怎么对以太网进行控制 我想让生成的文件带有自定义图标怎么做呢 dbgrideh问题
begin
DrawCaption;
end;
上面这个事件是不是就是响应WM_NCPAINT呢?貌似也没用
TForm1 = class(TForm)
private
{ Private declarations }
procedure DrawCaption;
procedure WMNCPaint(var Message:TWMNCPaint);message WM_NCPAINT;
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.DrawCaption;
var
ACanvas: TCanvas;
begin ACanvas := TCanvas.Create;
try
ACanvas.Handle := GetWindowDC(Self.Handle);
with ACanvas do
begin
Brush.Color := clActiveCaption;
Font.Name := 'Arial';
Font.Size := 10;
Font.Color := clCaptionText;
Font.Style := [fsBold];
TextOut(GetSystemMetrics(SM_CYMENU) + GetSystemMetrics(SM_CXBORDER),
Round((GetSystemMetrics(SM_CYCAPTION) - Abs(Font.Height)) / 2) + 1,
' SwissDelphiCenter');
end;
finally
ReleaseDC(Self.Handle, ACanvas.Handle);
ACanvas.Free;
end;
end;procedure TForm1.WMNCPaint(var Message: TWMNCPaint);
begin
inherited ;
DrawCaption;
end;一弹出别的窗体,还是会把form的caption弄的消失掉
procedure WMNCActivate(var Message:TWMNCActivate);message WM_NCACTIVATE;在不带皮肤的DELPHI程序里面,可以实现,但是放到DEV皮肤里面,发现没用,我该怎么改呢