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

ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
返信する
メッセージ
作成者
C1000
記事: 185
登録日時: 2006年5月07日(日) 17:16
お住まい: 宮城県
連絡する:

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

#1 投稿記事 by C1000 »

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

コード: 全て選択

Dim cfm2 As CHARFORMAT
SendMessage(hEdit,EM_GETCHARFORMAT,SCF_DEFAULT,VarPtr(cfm2))
hEditにはリッチエディットコントロールの、ハンドルが入っています。
7
記事: 473
登録日時: 2005年5月31日(火) 18:51
お住まい: 新潟県
連絡する:

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

#2 投稿記事 by 7 »

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

EM_GETCHARFORMAT
C1000
記事: 185
登録日時: 2006年5月07日(日) 17:16
お住まい: 宮城県
連絡する:

#3 投稿記事 by C1000 »

すいません。そこは間違いです。SCF_SELECTIONを指定していました。
正しいのコードを実行しても取得できないので、ほかのところに原因があると思うのですが...
7
記事: 473
登録日時: 2005年5月31日(火) 18:51
お住まい: 新潟県
連絡する:

#4 投稿記事 by 7 »

> すいません。そこは間違いです。SCF_SELECTIONを指定していました。
> 正しいのコードを実行しても取得できないので、ほかのところに原因があると思うのですが...
では、EM_GETCHARFORMATを飛ばす前に、CHARFORMAT構造体のcbSizeに構造体のサイズを指定してみてはどうでしょう?
C1000
記事: 185
登録日時: 2006年5月07日(日) 17:16
お住まい: 宮城県
連絡する:

#5 投稿記事 by C1000 »

うまくい書式情報を取得できました。7さん、ありがとうございます。
C1000
記事: 185
登録日時: 2006年5月07日(日) 17:16
お住まい: 宮城県
連絡する:

#6 投稿記事 by C1000 »

もうひとつわからないことが出たので、質問します。
フォント選択ダイアログを表示するのに、次のように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
7
記事: 473
登録日時: 2005年5月31日(火) 18:51
お住まい: 新潟県
連絡する:

#7 投稿記事 by 7 »

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

CHARFORMAT構造体を見てみたんですけど、文字のスタイルを判定するのはdwMaskメンバを調べるよりdwEffectsを調べた方がいいような気がしました。 試してないのでダメかもしれません...。
C1000
記事: 185
登録日時: 2006年5月07日(日) 17:16
お住まい: 宮城県
連絡する:

#8 投稿記事 by C1000 »

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