SendMessage(H, EM_SETCHARFORMAT, ?,?);
或者
SendMessage(H, WM_SETFONT, ?,?);
uj5u.com熱心網友回復:
應該不能通過訊息的機制來來設定字體顏色與大小樣式,因為好像是字體顏色與大小改變后,系統使用的訊息的機制來改變顯示,而直接作用的還是原本的Font。這是系統原始碼里的代碼:
procedure WMSetFont(var Message: TWMSetFont); message WM_SETFONT;
procedure TCustomRichEdit.WMSetFont(var Message: TWMSetFont);
begin
FDefAttributes.Assign(Font);
end;
uj5u.com熱心網友回復:
WMSetFont 是可以的,但是我使用過后,他將所有字的格式全部還原成默認格式了。
EM_SETCHARFORMAT這個我也試過了,但是會使寫字板程式崩掉。
uj5u.com熱心網友回復:
“他將所有字的格式全部還原成默認格式了。”
這樣就是不可以。可以的情況是,改變為你需要的格式。
uj5u.com熱心網友回復:
原始碼已給出來 ,當系統接收到WMSetFont,只會執行FDefAttributes.Assign(Font);SendMessage里的任何資訊都沒意義。當然,你可以先修改原始碼。
uj5u.com熱心網友回復:
原始碼已給出來 ,當系統接收到WMSetFont,只會執行FDefAttributes.Assign(Font);
SendMessage里的任何資訊都沒意義。當然,你可以先修改原始碼。
WMSetFont原始碼肯定是不能修改的

我自己做了一個測驗,往寫字板中添加文字,用spy++獲取寫字板權限,然后用EM_SETCHARFORMAT發送訊息,但是這個訊息會使寫字板崩掉。。。
您有用過這個EM_SETCHARFORMAT訊息么?網上說這個可以,但是我不知道具體該怎么用
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/8193.html
