请问:如何自定义FONT对话框中的内容
各位大虾:
    我通过FONTDIALOG打开了对话框,我想让“字形“的下拉列表中,只显示特定的字型,大小中只显示8,10两个选项。不显示“字集“下拉列表,请问如何实现?谢谢

解决方案 »

  1.   

    同样,在COLORDIALOG中,如何让颜色面板里只显示特定的几种颜色?
      

  2.   

    FontDialog1.Options
    中有很多選擇, 如你的
    >>不显示“字集“下拉列
    就可設置字體的, 也可選擇, 但它是分 Ansi, TrueType 這類的, 
    不知你的分類又如何??大小, 就比較麻煩!!!
    你可以將選擇大小的去掉!!
      

  3.   

    这么小的问题都没有人知道,中国有没有懂DELPHI的呀?
      

  4.   

    //参考如下代码~~
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      FontDialog1.Options := [fdEffects, fdLimitSize];
      FontDialog1.MinFontSize := 8;
      FontDialog1.MaxFontSize := 10;
      FontDialog1.Font.Name := '宋体';
      FontDialog1.Execute;
    end;procedure TForm1.FontDialog1Show(Sender: TObject);
    var
      I: Integer;
      vItemCount: Integer;
      vHandle: THandle;
      S: string;
    begin
      vHandle := FindWindowEx(TFontDialog(Sender).Handle, 0, 'ComboBox', nil);
      vHandle := FindWindowEx(vHandle, 0, 'ComboLBox', nil);
      vItemCount := SendMessage(vHandle, LB_GETCOUNT, 0, 0);
      for I := vItemCount - 1 downto 0 do begin
        SetLength(S, SendMessage(vHandle, LB_GETTEXTLEN, I, 0));
        SendMessage(vHandle, LB_GETTEXT, I, Integer(@S[1]));
        if (Pos('宋体', S) <> 1) and (Pos('楷体', S) <> 1) then
          SendMessage(vHandle, LB_DELETESTRING, I, 0);
      end;
      vHandle := FindWindowEx(TFontDialog(Sender).Handle, 0, 'ComboBox', nil);
      vHandle := FindWindowEx(vHandle, 0, 'Edit', nil);
      SendMessage(vHandle, WM_SETTEXT, 0, Integer(PChar('宋体')));  vHandle := FindWindowEx(TFontDialog(Sender).Handle, 0, 'Static', '字符集(&R):');
      ShowWindow(vHandle, SW_HIDE);
      vHandle := GetNextWindow(vHandle, GW_HWNDNEXT);
      ShowWindow(vHandle, SW_HIDE);
    end;//建议你自己设计字体、颜色对话筐还容易实现点~~//另外不要动不动就说“中国有没有懂DELPHI的呀”,难道全中国人都来看你这贴子?你以为你是谁?~~