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

解決


ダメダメ君  2005-09-11 20:14:14  No: 58923

[VC++6.0]
[windowsXP]

初めまして。

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


あqswでfrgtyふじこ  2005-09-11 22:52:22  No: 58924

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

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

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


ダメダメ君  2005-09-11 23:42:47  No: 58925

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


とおり  2005-09-12 00:05:44  No: 58926

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

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


あqswでfrgtyふじこ  2005-09-12 00:43:12  No: 58927

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

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


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

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






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