エディットボックスのフォントの変更と色を付けるには?

解決


BellWood  2003-05-01 20:24:09  No: 51355

ダイアログベースで画面を作っているのですが、
エディットボックスだけフォントを大きくして、色を付けたいと思っています。
エディットボックスの仕組みは複雑で、DC が表示用と入力用2つ存在しているようで、入力用の領域の(フォントや色の)変更方法がよくわからないでいます。
よろしくお願いします。


YuO  2003-05-01 21:34:09  No: 51356

WM_CTLCOLOREDITに対する応答で処理できます。
MFCならOnCtlColorかな。


BellWood  2003-05-01 21:54:58  No: 51357

WM_CTLCOLOREDIT(OnCtlColor) はいつ飛んでくるのですか?
ちなみに OCX 化しているのですが、OCX上でも捕まえられるのでしょうか?


YuO  2003-05-01 23:27:06  No: 51358

MSDN引くなりして調べるくらいのことはしてください。
http://msdn.microsoft.com/library/en-us/shellcc/platform/commctls/editcontrols/editcontrolreference/editcontrolmessages/wm_ctlcoloredit.asp
の最初に,
> An edit control that is not read-only or disabled sends the WM_CTLCOLOREDIT message to its parent window when the control is about to be drawn.
と書いてあります。

OCXでも利用しているのがEDITであれば関係ないです。


BellWood  2003-05-02 01:09:58  No: 51359

一応目は通したんですが、すみませんね〜英語が苦手な物で(^^;
いろいろ調べた結果 WM_CTLCOLOREDIT(またはWM_CTLCOLORSTATIC) は子(エディットボックス)が
描画されるとき親に飛ばすメッセージのようで、親ウィンドウ(ダイアログ)の DefWindowProc() で
処理するのがふつうのようです。
と言うことは、OCX 側の DefWindowProc()で待っていても何も飛んでこないはずでした。
OCXで処理しようとすると、キーが押された瞬間入力フィールドが白地の黒文字になってしまいます。
OnKeyDown()で領域を塗りつぶしてもNGです。この辺は今後の課題ということで、
どうもありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加