MFC:EditBoxの背景色を白のまま読み取り専用にするには?

解決


ダメダメ君  2005-09-11 11:14:14  No: 58923  IP: 192.*.*.*

[VC++6.0]
[windowsXP]

初めまして。

EditBoxを入力不可にしたいのですが、プロパティにて読み取り専用に設定すると背景色がグレイになってしまいます。
背景色を白のまま読み取り専用にしたいのですがどなたかご存知の方教えて下さい。

編集 削除
あqswでfrgtyふじこ  2005-09-11 13:52:22  No: 58924  IP: 192.*.*.*

グレイでないのに入力できないエディットは、
Windows のルール違反だし、不親切で使いにくいUIじゃないかな。

その上でなお強行したいなら
  ・変更通知で元文字列を上書き
  ・WM_CHAR 等を捨てる

これでわからないなら素直にグレイにした方がいいんじゃない?

編集 削除
ダメダメ君  2005-09-11 14:42:47  No: 58925  IP: 192.*.*.*

はい。わかりました。ありがとうございました。

編集 削除
とおり  2005-09-11 15:05:44  No: 58926  IP: 192.*.*.*

↑よりは、まともな方法として、

CDialog::OnCtlColor()で、nCtlColor == CTLCOLOR_STATICの場合を
捕まえて、WHITE_BRUSHを返してやることで、背景を白に出来ます。

編集 削除
あqswでfrgtyふじこ  2005-09-11 15:43:12  No: 58927  IP: 192.*.*.*

> CDialog::OnCtlColor()で、nCtlColor == CTLCOLOR_STATICの場合を
> 捕まえて、WHITE_BRUSHを返してやることで、背景を白に出来ます。

コントロールも識別しないと、他のスタティックまで変わるので注意されたし。

編集 削除