Windows2000 VC6.0 MFCで開発をしています。
tabコントロールを使用して、ツールを作ろうと思っています。
tabコントロール内にstaticコントロールを配置したいのですが、
文字列を変えたいことと、表示・非表示を行いたいと思っています。
Editボックスを使用して読み取り専用で書こうかとも思ったのですが、
マウスでクリックするとカーソルが点滅するため、ちょっと採用を
保留にしています。
また、Editボックスのプロパティで[無効]にすると灰色になってしまうため、
この色を変えられるようであれば、採用したいと思っています。
CtlColorでは変えられませんでした。
何か良い方法がありましたら、お教えください。
よろしくお願いいたします。
> tabコントロール内にstaticコントロールを配置したいのですが、
> 文字列を変えたいことと、表示・非表示を行いたいと思っています。
で?
それらは可能ですが……。
> また、Editボックスのプロパティで[無効]にすると灰色になってしまうため、
> この色を変えられるようであれば、採用したいと思っています。
> CtlColorでは変えられませんでした。
こちらはWM_CTLCOLORSTATIC(or OnCtlColor/CtlColor with CTLCOLOR_STATIC)で変更できます。
> で?
> それらは可能ですが……。
どのようにすればstatic コントロールを操作することができるのでしょうか?
> こちらはWM_CTLCOLORSTATIC(or OnCtlColor/CtlColor with CTLCOLOR_STATIC)で変更できます。
これは、
m_colStaticText = RGB(255,255,0);
とOnInitDialogで宣言しておいて OnCtlColor 内で
switch (nCtlColor) {
case CTLCOLOR_STATIC:
pDC->SetTextColor(m_colStaticText);
では変わらなかったのですが、
すみません、書き途中で送信してしまいました。
上記の書き方では、灰色のままだったため、どのように変えるのか
分かりませんでした。
どのようにすれば、変更できるのでしょうか?
よろしくお願いいたします。
> どのようにすればstatic コントロールを操作することができるのでしょうか?
CWnd::SetWindowTextとかCWnd::ShowWindowとか。
> 上記の書き方では、灰色のままだったため、どのように変えるのか
> 分かりませんでした。
???
あなたが書いたコードを見ると,文字色が黄色になるはずですが。
YuOさん いつもありがとうございます。
> CWnd::SetWindowTextとかCWnd::ShowWindowとか。
CStatic *static1 = (CStatic*)GetDlgItem(IDC_STATIC1);
static1->SetWindowText("adf");
のように書いたらできました。他のコントロールと同じなんですね。
始め、IDC_STATIC を変えようと思ったら、エラーになってしまったため、
だめなのかと思いました。(^^ゞ
> あなたが書いたコードを見ると,文字色が黄色になるはずですが。
こちらは、リソースのプロパティで[無効]のチェックボックスをはずすと
色が黄色になるのですが、[無効]のチェックが付いた場合には、
色が灰色のままになってしまいます。
とりあえず、staticコントロールの操作方法が分かりましたので、
これでやりたいと思います。ありがとうございました。
解決したのを付け忘れました。すみません。
ツイート | ![]() |