2009-05-03 46 views

回答

0

根據MSDN文檔,當您使用SetTextAlign()設置了TA_UPDATECP標誌時,TextOut()將忽略其位置參數,以支持設備上下文的當前位置。沒有看到你的代碼,我懷疑你的繪圖算法調用TextOut()的當前位置,根據選擇略有不同。

作爲一種調試策略,您可以在調用TextOut()獲取當前位置並確保其符合您對文本繪製位置的期望值之前調用GetCurrentPositionEx()

0

我相信antialiasing和ClearType可以在分數像素位置上繪製文本。如果您繪製一串文本,然後嘗試重繪中間的一部分,則可能無法以與中間的那些字符完全相同的位置開始繪製文本。技巧似乎是重繪整個字符串,但是爲選定的文本添加了裁剪區域。

tutorial on writing a Win32 text editor進入了相當詳細的如何繪製選定的文本。