これを保存すると、以下のようなダイアログテンプレートが出来ます。 (Borlandのリソースワークショップを使うと、dlgではなくrcファイルになると思います。) ダイアログエディタをお持ちでない方は、これを直接テキストエディタで作成してください。
EASYPLAY DIALOG 21, 16, 146, 55
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "EASYPLAY"
FONT 12, "System"
BEGIN
ICON "eplayicon", IDICON, 8, 8, 16, 14
LTEXT "ファイル名", 102, 47, 6, 82, 8
EDITTEXT IDEDIT, 44, 18, 94, 12, ES_AUTOHSCROLL
PUSHBUTTON "再生", IDPLAY, 44, 35, 40, 14
PUSHBUTTON "閉じる",IDCANCEL, 96, 35, 40, 14
END
それ以外に必要なファイルは、以下の通り。
#include <windows.h> #include <mmsystem.h> #define IDICON 101 #define IDEDIT 103 #define IDPLAY 104
#include "easyplay.h" eplayicon ICON "easyplay.ICO" #include "easyplay.dlg"
#include "easyplay.h"
/*ダイアログ関数(Windowsからコールバックされる)*/
/*「FAR PASCAL」は「CALLBACK」でも可。その場合「extern "C"」を含む3行は不要*/
#ifdef __cplusplus
extern "C"
#endif
BOOL FAR PASCAL easyplay(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam){
char buf[260];
switch(msg){
case WM_COMMAND:
switch((WORD)wParam) {/*コントロールID*/
case IDPLAY:
GetWindowText(GetDlgItem(hDlg, IDEDIT), buf, sizeof(buf));
/* GetDlgItemText(hDlg, IDEDIT, buf, sizeof(buf)); でも良い */
sndPlaySound(buf, SND_SYNC);
break;
case IDCANCEL: /* 「閉じる」ボタン OR システムメニューの「閉じる」 */
EndDialog( hDlg, wParam );
break;
default:
return FALSE; /*メッセージを処理しなかった*/
}
break;
case WM_INITDIALOG:
SetFocus(GetDlgItem(hDlg,IDEDIT));
return FALSE;/* SetFocusしたらFALSE */
default:
return FALSE; /*メッセージを処理しなかった*/
}
return TRUE; /*メッセージを処理した*/
}
/*メイン関数*/
int PASCAL WinMain(HINSTANCE hinst, HINSTANCE hprev, LPSTR cmdline, int cmdshow){
DLGPROC lpProc = (DLGPROC)MakeProcInstance((FARPROC)easyplay, hinst);
DialogBox(hinst, "EASYPLAY", NULL, lpProc);/*ここでダイアログボックスを作成*/
FreeProcInstance((FARPROC)lpProc);
return 0;
}
NAME EASYPLAY DESCRIPTION 'EASYPLAY: EASY SOUND PLAYER' EXETYPE WINDOWS STUB 'WINSTUB.EXE' CODE PRELOAD MOVEABLE DATA MOVEABLE PRELOAD MULTIPLE HEAPSIZE 4096 STACKSIZE 8192 EXPORTS EASYPLAY @1
では、実行してみてください。ファイル名の部分にWAVファイルをフルパスで入れて
「再生」ボタンを押すと音が鳴ります。「閉じる」ボタンを押すと、プログラムを
終了します。かなりWindowsプログラムらしくなってきましたね。
(長くなってきたので、プログラムの説明は次回に回します。)
一つ上のページに戻る