リッチエディットで書式情報が取得できない

返信する


答えを正確に入力してください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: リッチエディットで書式情報が取得できない

by C1000 » 2006年10月07日(土) 19:53

うまく出来ました。7さんありがとうございました。

by 7 » 2006年10月07日(土) 19:27

> フォント選択ダイアログを表示するのに、次のようにdwMaskメンバを参照し、値を設定しているのですが、イタリック体、下線、打ち消し線、のメンバが、常に1になります。どこが原因なのでしょうか。
常に1になるっていうのは、書式がイタリック体じゃなくても1になるっていうことでしょうか?

CHARFORMAT構造体を見てみたんですけど、文字のスタイルを判定するのはdwMaskメンバを調べるよりdwEffectsを調べた方がいいような気がしました。 試してないのでダメかもしれません...。

by C1000 » 2006年10月07日(土) 09:27

もうひとつわからないことが出たので、質問します。
フォント選択ダイアログを表示するのに、次のようにdwMaskメンバを参照し、値を設定しているのですが、イタリック体、下線、打ち消し線、のメンバが、常に1になります。どこが原因なのでしょうか。(前の質問のコードの続きに書いています。)

コード: 全て選択


Dim lfd As LOGFONT 'フォント情報
With lfd 'フォント情報の設定
If cfm2.dwMask and CFE_BOLD Then
	cfm2.yHeight=1400
End If	
If cfm2.dwMask and CFE_ITALIC Then
	.lfItalic=1
End If
If cfm2.dwMask and CFE_UNDERLINE Then
	.lfUnderline=1
End If	
If cfm2.dwMask and CFE_STRIKEOUT Then
	.lfStrikeOut=1
End If
End With

by C1000 » 2006年10月07日(土) 08:03

うまくい書式情報を取得できました。7さん、ありがとうございます。

by 7 » 2006年10月06日(金) 22:29

> すいません。そこは間違いです。SCF_SELECTIONを指定していました。
> 正しいのコードを実行しても取得できないので、ほかのところに原因があると思うのですが...
では、EM_GETCHARFORMATを飛ばす前に、CHARFORMAT構造体のcbSizeに構造体のサイズを指定してみてはどうでしょう?

by C1000 » 2006年10月06日(金) 21:43

すいません。そこは間違いです。SCF_SELECTIONを指定していました。
正しいのコードを実行しても取得できないので、ほかのところに原因があると思うのですが...

Re: リッチエディットで書式情報が取得できない

by 7 » 2006年10月06日(金) 21:09

> リッチエディットで、選択されているところの書式情報を取得しようとしているのですが、取得できません。(デバッグで、メンバ変数に何も入らない)どこが原因なのでしょうか。
恐らくwParamSCF_SELECTIONを指定すると改善されると思います。

EM_GETCHARFORMAT

リッチエディットで書式情報が取得できない

by C1000 » 2006年10月06日(金) 21:02

リッチエディットで、選択されているところの書式情報を取得しようとしているのですが、取得できません。(デバッグで、メンバ変数に何も入らない)どこが原因なのでしょうか。
WinXp Homeでriched20.dllを使用しています。

コード: 全て選択

Dim cfm2 As CHARFORMAT
SendMessage(hEdit,EM_GETCHARFORMAT,SCF_DEFAULT,VarPtr(cfm2))
hEditにはリッチエディットコントロールの、ハンドルが入っています。

ページトップ