1
當我通過Win32 API的DrawText函數繪製文本有沒有一種方法可以確定使用哪種字體,或確定字體大小,還是粗體或斜體?
PS我寫在C#在DrawText中設置格式win32函數
當我通過Win32 API的DrawText函數繪製文本有沒有一種方法可以確定使用哪種字體,或確定字體大小,還是粗體或斜體?
PS我寫在C#在DrawText中設置格式win32函數
作爲MSDN says,
DrawText函數使用設備上下文的選擇字體,文本顏色和背景顏色繪製文本。
這意味着您可以從設備上下文獲取當前字體句柄,然後獲取LOGFONT
結構,該結構向您提供有關您請求的字體的詳細信息。
由於API使用當前選擇的字體,改變它,你需要有可用的新字體句柄(你通常預先創建它,或以其他方式獲得HFONT
字體句柄使用例如CreateFont
或CreateFontIndirect
API)。然後,在致電DrawText
之前,請使用SelectObject
替換當前選定的字體,並且一旦完成,就可以將調用字體放回到另一個SelectObject
調用中。
'DrawText()'將在您傳遞的設備上下文中使用當前選定的字體。你必須創建適當的'HFONT'並使用'SelectObject()'將它與你的'HDC'關聯(並且保存返回的句柄以便在完成時恢復它),這可能很乏味。您是否有任何理由使用Win32而不是託管API? –
winForms的DrawString用於字體大小的點,我想用於小型單位。 – user1544067