0

ユーザー入力に応じて、実行時にラベルのキャプション(テキスト)を変更したい。ユーザーがボタンを押すと、私のプログラムはいくつかの処理を実行し、出力をラベルに書き込みます。しかし、私はこれについて問題があります。

まず、私の環境にはラベルがありません。少なくともツールボックスでは。ツールボックスから追加することが唯一の方法ではないことは知っていますが、古いソースコードに触れて、物事を台無しにするのは少し怖いです。

静的なテキスト要素を見つけましたが、その「静的な」要素のため、resource.hに表示されません。したがって、のような関数を使用すると、機能GetDlgItem(IDC_STATIC);しません。IDC_STATIC私のresource.hに何もないからです。

これは2番目でした。

そして、私も使用SetDlgItemText(IDC_STATIC, "text");しました。しかし、私のresource.hが何であるかを知らないため、IDC_STATICエラーが発生します。

ツールボックスにないラベルクラス/要素はありますか?IDC_STATIC静的な動作のため、私はresource.hに含まれていないと思います。または、ラベル/静的テキストのテキストを更新する他の方法はありますか?

ご協力いただきありがとうございます。

4

2 に答える 2

3

静的コントロールを使用したいが、IDC_STATIC以外の識別子を指定します。そうすれば、その識別子で、などGetDlgItemTextを使用できるようになります。SetDlgItemTextまたは、読み取り専用に設定されたEDITコントロールを使用することもできます。これは、静的コントロール1とほぼ同じです。


1多くの人が気付いています。たとえば、通常の編集コントロールの背景色を変更するには、に応答しWM_CTLCOLOREDITます。静的コントロールまたは読み取り専用編集コントロールの背景色を変更するには、に応答しWM_CTLCOLORSTATICます。

于 2012-08-08T07:07:58.127 に答える
1

静的テキストのIDを以外のものIDC_STATICに変更し、それらのコードを変更して更新します。5分前に試してみたらいいのにと思います。

IDを変更すると、resource.hが更新され、静的テキストが追加されます。

これは、私の後の人々がデバッグするのに役立つかもしれません。

TCHAR   *pszBuffer = new TCHAR[255];
pszBuffer = TEXT("dkjhasja");
CWindow wndSys;
wndSys.Attach(GetDlgItem(IDC_BLABLABLA));
wndSys.SetWindowText(pszBuffer);
wndSys.Detach();
于 2012-08-08T07:06:49.323 に答える