#include "myWin.h" #pragma comment(lib,"winmm.lib") #define MPUSH 0x9 #define MCTONE 0xC #define SMSG(st, ch, d1, d2) ((DWORD)(st<<4|ch|((d1)<<8)|(d2)<<16)) HFONT bFont, nFont; TCHAR *btName[]={ TEXT("バスドラム2"), TEXT("バスドラム1"),TEXT("サイドスティック"), TEXT("スネアドラム1"), TEXT("手拍子"),TEXT("スネアドラム2"),TEXT("ロートム2"),TEXT("クローズハイハット"), TEXT("ロートム1"),TEXT("ペダルハイハット"),TEXT("ミドルトム2"),TEXT("オープンハイハット"), TEXT("ミドルトム1"),TEXT("ハイトム2"),TEXT("クラッシュシンバル1"),TEXT("ハイトム1"), TEXT("ライドシンバル1"),TEXT("チャイニーズシンバル"),TEXT("ライドベル"),TEXT("タンバリン"), TEXT("スプラッシュシンバル"),TEXT("カウベル"),TEXT("クラッシュシンバル2"),TEXT("ヴィブラスラップ"), TEXT("ライドシンバル2"),TEXT("ハイボンゴ"),TEXT("ローボンゴ"),TEXT("ミュートハイコンガ"), TEXT("オープンハイコンガ"), TEXT("ローコンガ"),TEXT("ハイティンバル"),TEXT("ローティンバル"), TEXT("ハイアゴゴ"), TEXT("ローアゴゴ"),TEXT("カバサ"),TEXT("マラカス"),TEXT("ショートホイッスル"), TEXT("ロングホイッスル"),TEXT("ショートギロ"),TEXT("ロングギロ"),TEXT("クラベス"), TEXT("ハイウッドブロック"),TEXT("ローウッドブロック"),TEXT("ミュートクイーカ"),TEXT("オープンクイーカ"), TEXT("ショートトライアングル"),TEXT("オープントライアングル") }; int numArray; static HWND hBtn[sizeof(btName)/sizeof(TCHAR *)]; static HMIDIOUT hM; static BYTE note=0x3C, vel=0x40, prog=0; void dspProg(HWND hw){ TCHAR str[128]; wsprintf(str,TEXT("音の強さ:%02X, 音色: %02X"), vel, prog); SetWindowText(hw,str); } void setFont(HWND hw, HFONT font){ SendMessage(hw, WM_SETFONT,(WPARAM)font,0); } void createButton(HWND hw){ TCHAR str[256]; numArray=(sizeof(btName)/sizeof(TCHAR *)); int X=0; for(int i=0; i=35 && CM<=81){ midiOutShortMsg(hM,SMSG(MPUSH,9,CM,vel)); } } LRESULT CALLBACK WndProc(HWND hw, UINT msg, WPARAM wp,LPARAM lp){//■Window Procedure switch(msg){ case WM_DESTROY : midiOutReset(hM); midiOutClose(hM); PostQuitMessage(0); return 0; case WM_CREATE : procCreate(hw,wp,lp) ; return 0; case WM_COMMAND : procCommand(hw,wp,lp) ; return 0; // case WM_KEYDOWN : procKeyDown(hw,wp,lp) ; break; } return DefWindowProc(hw,msg,wp,lp); }