我使用的是Windows常用控件CHOOSECOLOR對話框,但在Win 7上它像拇指一樣突出,因爲它仍然使用「舊」Tahoma字體。在CHOOSECOLOR對話框中更改字體
有沒有得到它使用的Segoe UI或其他一些字體的一個相當簡單的方法?
如果它的事項,我用Delphi/C++ Builder中......
我使用的是Windows常用控件CHOOSECOLOR對話框,但在Win 7上它像拇指一樣突出,因爲它仍然使用「舊」Tahoma字體。在CHOOSECOLOR對話框中更改字體
有沒有得到它使用的Segoe UI或其他一些字體的一個相當簡單的方法?
如果它的事項,我用Delphi/C++ Builder中......
我不認爲這是改變的默認字體是一個好主意,但肯定的是,它是可行的:
function EnumChildProc(hWnd: HWND; lParam: LPARAM): LongBool; stdcall;
begin
SendMessage(hWnd, WM_SETFONT, lParam, Integer(true));
result := true;
end;
procedure TForm1.ColorDialogShow(Sender: TObject);
var
dlg: TColorDialog;
begin
if not (Sender is TColorDialog) then Exit;
dlg := TColorDialog(Sender);
SendMessage(dlg.Handle, WM_SETFONT, Self.Font.Handle, Integer(true));
EnumChildWindows(dlg.Handle, @EnumChildProc, Self.Font.Handle);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
with TColorDialog.Create(nil) do
try
OnShow := ColorDialogShow;
Execute(Handle);
finally
Free;
end;
end;
這將使用Form1.Font
字體。
Color Dialog with custom font http://privat.rejbrand.se/ColorDialogWCustomFont.png
不過,在這種情況下,我可能只是認爲可以接受:
Color Dialog with default font (Tahoma) http://privat.rejbrand.se/WCPDefTahoma.pngColor Dialog with Segoe UI font http://privat.rejbrand.se/WCPSegoeUI.png
宋體(默認值)與瀨越UI
但是!有涉及的問題:
Color Dialog with default font - no issues http://privat.rejbrand.se/WCLNoFontIssue.png
Color Dialog with custom font causing issues http://privat.rejbrand.se/WCLFontIssue.png
最安全的事情,我想,是不是改變對話框的默認(意)的外觀。那麼,至少,你可以責怪微軟的任何尺度問題...
完美的答案,謝謝! – Roddy 2011-05-26 21:49:57