WC_BUTTON

ボタンやエディットボックスなど、たいていのコントロールはウィンドウを元に作成されている・・・。
ボタンを動的に作成したい場合、CreateWindowでウィンドウクラス名に"BUTTON"または、マクロWC_BUTTONを指定したウィンドウをつくる・・・。
これがボタンコントロールとなる・・・。
WC_BUTTONの場合は、

commctrl.hが必要・・・。

resource.hには、リソースIDだけ、

を定義・・・。
リソースファイル(.rcファイル)には、何も追加しない・・・。
その代わりに、WindowProcで、

CreateWindowでWC_BUTTONなウィンドウ作成・・・。
WS_CHILDでメインのウィンドウの子ウィンドウであることを指定・・・。
WS_VISIBLEをつけないと表示されないので注意・・・。
CreateWindowの引数hMenuにリソースIDのID_BUTTON1をHMENUにキャストして渡す・・・。

ボタン処理は、WM_COMMANDの、

ID_BUTTON1の部分に定義しておく・・・。

f:id:BG1:20150804141408p:plain

実行するとウィンドウ上にボタンができるのでクリック・・・。

f:id:BG1:20150804141627p:plain

押されると、メッセージボックスで"Button1"と表示される・・・。

Sample/WC_BUTTON.cpp at master · bg1bgst333/Sample · GitHub
Sample/resource.h at master · bg1bgst333/Sample · GitHub
Sample/WC_BUTTON.rc at master · bg1bgst333/Sample · GitHub