ll_libload gdi32, "gdi32.dll"
ll_getproc GetObjectA, "GetObjectA", gdi32
#module
#deffunc finfo int
mref type, 0
mref bmscr, 67
mref stt, 64 : mref rstr, 65
dim logfont, 15 // LOGFONT構造体(60byte = 4byte * 15)
ll_getptr logfont : ll_ret h
prm = bmscr.38, 60, h // フォントハンドル, 60byte, LOGFONT
ll_callfunc prm, 3, GetObjectA@
if type = 0 : ll_peek rstr, h + 28
if type = 1 : stt = logfont < 0 * -logfont + (logfont > -1 * logfont) // 負数を直す
if type = 2 : stt = logfont.4 >= 600 // FW_SEMIBOLD(=600) 以上は太字とする
if type = 3 : stt = logfont.5 >> 0 & 0xFF // 20byte = lfItalic
if type = 4 : stt = logfont.5 >> 8 & 0xFF // 21byte = lfUnderline
if type = 5 : stt = logfont.5 >> 16 & 0xFF // 22byte = lfStrikeOut
return
#global
sdim infotype, 20, 6
infotype = "タイプフェイス名", "サイズ", "太文字", "イタリック体", "下線", "打ち消し線"
font "MS 明朝", 20, 5 // MS明朝 20pt 太文字+下線
repeat 6
pos 10, cnt * 30 + 10 : mes infotype.cnt
pos 300, cnt * 30 + 10
finfo cnt
if cnt : mes stat : else : mes refstr
loop
stop
|