コントロール

ボタンは、リソースだけでなく、CreateWindowEx関数で作ることができます。 これは、メインウィンドウの時と同じです。 このとき、CREATESTRUCT構造体を使いました。 そして、継承して、MyCreateStructクラスを作りました。 ですから、これをそのまま使います。

MyControl クラス

MyCreateStructクラスを継承して、MyControlクラスを作ります。

#pragma once

/*
	コントロール
*/

#include	<windowsx.h>

class MyControl : public MyCreateStruct{
public:
	// 生成後のメソッド
	HWND SetID(int id){
		hwnd = GetDlgItem(hWnd, id);
		return hwnd;
	}
	void GetText(LPTSTR txt){
		GetWindowText(hwnd, txt, GetWindowTextLength(hwnd) + 1);
	}
	void SetText(LPCTSTR txt){
		SetWindowText(hwnd, txt);
	}
	void Move(int x, int y, int cx, int cy){
		MoveWindow(hwnd, x, y, cx, cy, TRUE);
	}
};

解説

MyCreateStruct のままでは、メインウィンドウ用ですから、コントロール用のクラスを作ります。 メソッドも追加します。

使用例(win314)

//
//	MyApp.h
//

class MyApp : public MyMainWnd{
public:
	// WM_COMMAND
	void wmCommand(WPARAM wp){
		int wmId = LOWORD(wp);
		
		switch(wmId){
		case IDC_BUTTON1:				// ボタンID
			MyControl btn;
			
			btn.SetID(IDC_BUTTON1);
			static int i = 0;
			if(i == 0){
				btn.SetText(L"1");
				i = 1;
			}else{
				btn.SetText(L"0");
				i = 0;
			}
			break;
		}
	}
};

実行画面です。

解説

特に、解説はありません。 次回は、ボタンクラスを作ります。


[前] [目次] [次]