ボタンは、MyControl クラスで作れるようになりました。 しかし、さらに継承します。
MyCreateStructクラスを継承して、MyControlクラスを作りました。 さらに、MyControlクラスを継承して、MyButtonクラスを作ります。
新しくファイルを作らないで、"MyControl.h" の中に書きます。
#ifndef ___MYCONTROL
#define ___MYCONTROL
/*
コントロール
*/
class MyControl : public MyCreateStruct{
public:
// コンストラクタ
MyControl(LPCTSTR className) : MyCreateStruct(className){
style = WS_CHILD | WS_VISIBLE;
hwndParent = hWnd;
Location(0, 0);
Size(100, 100);
}
// メソッド
void ID(int id){
hMenu = (HMENU)id;
}
};
//===============================================
// 部品A
//===============================================
// ボタン------------------------------
class MyButton : public MyControl{
public:
MyButton() : MyControl(TEXT("BUTTON")){
style = style | BS_DEFPUSHBUTTON;
}
};
#endif
特に、解説はありません。
// // MyApp.h // #include <MyControl.h> #include <MyMessageBox.h> #define ID_BUTTON 1000 // ボタンID class MyApp : public MyMainWnd{ public: // WM_CREATE void wmCreate(){ MyButton btn; btn.Text(TEXT("ボタン")); btn.ID(ID_BUTTON); CreateWindowEx(btn); } // WM_COMMAND void wmCommand(WPARAM wp){ int wmId = LOWORD(wp); switch(wmId){ case ID_BUTTON: // ボタンID MyMessageBox(TEXT("ボタンが押されました!") , TEXT("確認")); break; } } };
実行画面です。
特に、解説はありません。