用delphi编出来的程序,在中文操作系统下,其标题总是用中文宋体。
如果标题本身全是中文,那也能过得去,但一旦用到了几个英文字母,
问题就来了:像M或W这样的字宽比较大的字母,就完全看不清楚了,
(不妨大家可以试试是否如此)。现请问各位,如何改变form标题(caption)所用的字体(fontname)?

解决方案 »

  1.   


    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs;type
      TForm1 = class(TForm)
      private
        { Private declarations }
          procedure   WMNCPAint(var   Mes   :   TWMNCPaint);   message   WM_NCPAINT;
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}  procedure   TForm1.WMNCPAint(var   Mes   :   TWMNCPaint);   
      var   
          ACanvas   :   TCanvas;   
      begin   
          ACanvas   :=   TCanvas.Create;   
          try   
              ACanvas.Handle   :=   GetWindowDC(Form1.Handle);
              with   ACanvas   do   begin   
                  Brush.Color   :=   clActiveCaption;   
                  Font.Name   :=   'Times   New   Roman';
                  Font.Size   :=   10;   
                  Font.Color   :=   clCaptionText;   
                  Font.Style   :=   [fsItalic,   fsBold];   
                  TextOut(GetSystemMetrics(SM_CYMENU)   +   GetSystemMetrics(SM_CXBORDER),   
                                  Round((GetSystemMetrics(SM_CYCAPTION)   -   Abs(Font.Height))/2)   +1,   
                                  '中华人民共和国!');
              end;   
          finally   
              ReleaseDC(Form1.Handle,   ACanvas.Handle);   
              ACanvas.Free;   
          end;   
      end;end.