コントロール

ボタンのテキストを変えてみます。

ボタンのテキストを変える(win633)

青い部分だけ見てください。

//
//	MyApp.h
//

#define	ID_BUTTON		1000 	// ボタンID


class MyApp : public MyMainWnd{
public:
	// WM_CREATE
	void wmCreate(){
		CreateWindowEx(
			NULL,			// 拡張スタイル
			TEXT("BUTTON"),		// クラス名
			TEXT("0"),		// キャプション
			WS_CHILD | WS_VISIBLE,		// スタイル
			10, 10,		// 位置
			100, 100,		// サイズ
			hWnd,	// 親ハンドル
			(HMENU)ID_BUTTON,			// メニュー
			hInst,			// インスタンス
			NULL);
	}
	// WM_COMMAND
	void wmCommand(WPARAM wp){
		int wmId = LOWORD(wp);
		
		switch(wmId){
		case ID_BUTTON:				// ボタンID
			HWND hBtn;
			static int i = 0;
			
			hBtn = GetDlgItem(hWnd, ID_BUTTON);	// ウィンドウハンドル
			if(i == 0){
				SetWindowText(hBtn, TEXT("1")); 		// キャプション
				i = 1;
			}else{
				SetWindowText(hBtn, TEXT("0")); 		// キャプション
				i = 0;
			}
			break;
		}
	}
};

実行画面です。 ボタンを押すたびにテキストが変わります。

解説

ボタンのテキストを変える方法です。 これは、CreateWindowEx関数で作った後から、キャプションを変更するということです。

まず、ボタン用の変数を用意します。 これは、ハンドルと言います。 ハンドルを使って操作するのです。

			HWND hBtn;

ボタンのハンドルを得るには、GetDlgItem 関数を使います。 ボタンにとって親になるメインウィンドウとボタンの番号を代入します。 メインウィンドウ=hWnd です。

			hBtn = GetDlgItem(hWnd, ID_BUTTON);	// ウィンドウハンドル

テキスト(キャプション)を変えるには、SetWindowText関数を使います。 hBtn を代入します。

				SetWindowText(hBtn, TEXT("1")); 		// キャプション

[前] [目次] [次]