1

Тема: AHK: Дефолтный шрифт в Gui?

Хочу узнать будет ли использован тот же шрифт у пользователя, если он менял настройки в  системе.

2

Re: AHK: Дефолтный шрифт в Gui?

Если шрифт указан явно, будет тот же, если он имеется в системе пользователя. Если не указан — зависит от настроек системы.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3

Re: AHK: Дефолтный шрифт в Gui?

Я тупанул и забыл прописать сразу, а теперь когда штук 80 элементов подстроено под дефолтный шрифт, хочется как-то спасти работу. Как узнать что за шрифт сейчас используется в GUI, чтобы прописать именно его?

4

Re: AHK: Дефолтный шрифт в Gui?

GuiDefaultFont() {        ; By SKAN www.autohotkey.com/forum/viewtopic.php?p=465438#465438
 hFont := DllCall( "GetStockObject", UInt,17 ) ; DEFAULT_GUI_FONT
 VarSetCapacity( LF, szLF := 60*( A_IsUnicode ? 2:1 ) )
 DllCall("GetObject", UInt,hFont, Int,szLF, UInt,&LF )
 hDC := DllCall( "GetDC", UInt,hwnd ), DPI := DllCall( "GetDeviceCaps", UInt,hDC, Int,90 )
 DllCall( "ReleaseDC", Int,0, UInt,hDC ), S := Round( ( -NumGet( LF,0,"Int" )*72 ) / DPI )
Return DllCall( "MulDiv",Int,&LF+28, Int,1,Int,1, Str ), DllCall( "SetLastError", UInt,S )
}

A_GuiFont     := GuiDefaultFont()
A_GuiFontSize := A_LastError

MsgBox, %A_GuiFont%`t%A_GuiFontSize%

Или ещё так (нужно передать hwnd контрола):

Gui, Add, Text, hwndhText, test
MsgBox, % Control_GetFont(hText)
ExitApp

Control_GetFont( hwnd ) { ; www.autohotkey.com/forum/viewtopic.php?p=465438#465438 By SKAN
 SendMessage 0x31, 0, 0, , ahk_id %hwnd% ; WM_GETFONT                 Created: 27-Apr-2011
 IfEqual,ErrorLevel,FAIL, Return
 hFont := Errorlevel, VarSetCapacity( LF, szLF := 60*( A_IsUnicode ? 2:1 ) )
 DllCall("GetObject", UInt,hFont, Int,szLF, UInt,&LF )
 hDC := DllCall( "GetDC", UInt,hwnd ), DPI := DllCall( "GetDeviceCaps", UInt,hDC, Int,90 )
 DllCall( "ReleaseDC", Int,0, UInt,hDC ), S := Round( ( -NumGet( LF,0,"Int" )*72 ) / DPI )
Return DllCall( "MulDiv",Int,&LF+28, Int,1,Int,1, Str ), DllCall( "SetLastError", UInt,S )
}
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

5

Re: AHK: Дефолтный шрифт в Gui?

Получил "MS Shell Dlg 8". По идее это системный шрифт и если его прописать в начале Gui, то у всех окна должны отображаться одинаково?

6

Re: AHK: Дефолтный шрифт в Gui?

А я не знаю, у всех ли он есть, может, в XP нету. В случае, если шрифт не найден, используется дефолтный, во всяком случае, у меня так получается:

Gui, Font, s12, белиберда
Gui, Add, Text, hwndhText, test
Gui, Show, w300

MsgBox, % Control_GetFont(hText)
ExitApp

Control_GetFont( hwnd ) { ; www.autohotkey.com/forum/viewtopic.php?p=465438#465438 By SKAN
 SendMessage 0x31, 0, 0, , ahk_id %hwnd% ; WM_GETFONT                 Created: 27-Apr-2011
 IfEqual,ErrorLevel,FAIL, Return
 hFont := Errorlevel, VarSetCapacity( LF, szLF := 60*( A_IsUnicode ? 2:1 ) )
 DllCall("GetObject", UInt,hFont, Int,szLF, UInt,&LF )
 hDC := DllCall( "GetDC", UInt,hwnd ), DPI := DllCall( "GetDeviceCaps", UInt,hDC, Int,90 )
 DllCall( "ReleaseDC", Int,0, UInt,hDC ), S := Round( ( -NumGet( LF,0,"Int" )*72 ) / DPI )
Return DllCall( "MulDiv",Int,&LF+28, Int,1,Int,1, Str ), DllCall( "SetLastError", UInt,S )
}
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

7 (изменено: Pokerist, 2013-08-12 16:54:16)

Re: AHK: Дефолтный шрифт в Gui?

teadrinker пишет:

А я не знаю, у всех ли он есть, может, в XP нету.

  Я даже у себя в папке Fonts его не нашёл.


используется дефолтный

Да и у меня совпало, но как узнать что это за дефолтный шрифт, чтобы его прописать жёстко?

8

Re: AHK: Дефолтный шрифт в Gui?

Лучше использовать какой-то из шрифтов, которые здесь помечены жёлтым.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

9

Re: AHK: Дефолтный шрифт в Gui?

Странно как-то. Дефолтный шрифт в системе, который подставляется в Gui, если нет дефолтного для самого Gui, не имеется  в этих "жёлтых".  Разве может такое быть?

10

Re: AHK: Дефолтный шрифт в Gui?

Дефолтный в системе и дефолтный в GUI — одно и то же. Почему не может быть? Среди этих жёлтых только те, которые есть во всех перечисленных системах, поэтому и использовать их безопасно. MS Shell Dlg к их числу не относится.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

11

Re: AHK: Дефолтный шрифт в Gui?

А нет такой сравнительной таблички, которая сравниваются системы от XP и выше?

12 (изменено: Pokerist, 2013-08-12 22:03:40)

Re: AHK: Дефолтный шрифт в Gui?

Попробовал всё из этой компании :
http://sawarogu.3neko.ru/articles/spisok-bezorasnykh-shriftov-web-safe-fonts/
  И ни один не оказался тем дефолтным, под который я всё настроил. Мистика какая-то. Ладно буду ставить везде Arial.