如何检测系统显示分辨率是大字体还是小字体(800*600显示方式)?(100分)

  • 主题发起人 主题发起人 jw
  • 开始时间 开始时间
在注册表的HKEY_CURRENT_CONFIG/Display/Settings中有好几个有关的主键
可以根据他们判断用的是什么字体。
例:
procedure TForm1.Button3Click(Sender: TObject);
var
ReadREG: TRegIniFile;
DPI:integer;
begin
ReadREG:=TRegIniFile.Create;
ReadREG.RootKey:=HKEY_CURRENT_CONFIG;
if not ReadREG.OpenKey('Display/Settings',False) then
showmessage('不能打开主键')
else
begin
DPI:=ReadREG.ReadInteger('','DPILogicalX',0);
if DPI=96 then showmessage('小字体');
if DPI=120 then showmessage('大字体');
if (DPI<>96)and(DPI<>120) then showmessage('其他字体');
end;
ReadREG.Free;
end;
 
PixelsPerInch判断即可
 
我定义了一个函数,很好使!~
FUNCTION SmallFonts : BOOLEAN;
//returns TRUE if small fonts are set, FALSE if using Large Fonts
VAR
DC : HDC; // used to check for number of colors available
BEGIN
DC := GetDC(0);
Result := (GetDeviceCaps(DC, LOGPIXELSX) = 96);
// LOGPIXELSX will = 120 if large fonts are in use
ReleaseDC(0, DC);
END;
 
多人接受答案了。
 

Similar threads

后退
顶部