![](/img/trans.png)
[英]How to detect URL links after setting EM_AUTOURLDETECT in TRichEdit?
[英]Assigning a font to a TRichEdit after setting background colour for selected text
我的Delphi表單上有一個TRichEdit控件,我使用perform方法為控件發送一個窗口消息,為文本的某些部分指定背景顏色。 (在調用此代碼之前,使用SelStart和SelLength選擇文本)。
FillChar(Format, SizeOf(Format), 0);
with Format do
begin
cbSize := SizeOf(Format);
dwMask := CFM_BACKCOLOR;
crBackColor := AColor;
fRichEdit.Perform(EM_SETCHARFORMAT, SCF_SELECTION, Longint(@Format));
end;
我也希望用戶可以更改字體(整個字體,它不像背景突出顯示那樣),所以當他們想要修改編輯框的字體時,我向用戶展示TFontDialog ,我將字體分配給TRichEdit控件的字體。
RichEdit.Font.Assign(SelectedFont);
但是,使用Windows消息似乎會阻止字體更新。 當我注釋掉perform方法時,一切正常,但是當我取消注釋該行時,字體不會更新。
我是Windows消息的新手,請解釋為什么會發生這種情況。
您正在設置的Font
屬性將整個RichEdit的字體設置為整體,而不是當前文本選擇。 如果要設置每個選擇字體,則需要使用通過EM_SETCHARFORMAT
傳遞的CHARFORMAT
記錄的szFaceName
, yHeight
和bCharset
字段。 無法在每個選擇的基礎上分配TFont
對象,甚至是HFONT
句柄。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.