ファイル名:easyplay.dlg
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
DEFPUSHBUTTON "参照", IDBROWSE, 96, 3, 40, 14
PUSHBUTTON "再生", IDPLAY, 44, 35, 40, 14
PUSHBUTTON "閉じる",IDCANCEL, 96, 35, 40, 14
END
ファイル名:easyplay.h
#include <windows.h>
#include <mmsystem.h>
#define IDICON 101
#define IDEDIT 103
#define IDPLAY 104
#define IDBROWSE 106
#define IDM_VER 107
ファイル名:easyplay.rc
#include "easyplay.h"
eplayicon ICON "easyplay.ICO"
#include "easyplay.dlg"
ファイル名:easyplay.c
#include "easyplay.h"
#include <commdlg.h>
#include <string.h>
/*ダイアログ関数(Windowsからコールバックされる)*/
#ifdef __cplusplus
extern "C"
#endif
BOOL FAR PASCAL easyplay(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam){
static OPENFILENAME ofn;
int flag;
char buf[260], achFileTitle[256];
HCURSOR hcur;
HMENU hsysmenu;
switch(msg){
case WM_COMMAND:
switch((WORD)wParam) {/*コントロールID*/
case IDBROWSE:
memset(&ofn, 0, sizeof(OPENFILENAME));
ofn.lStructSize = sizeof(OPENFILENAME);
ofn.hwndOwner = hDlg;
ofn.lpstrFilter = "サウンド(*.WAV)\0*.WAV\0全ファイル(*.*)\0*.*\0";
ofn.lpstrCustomFilter = NULL;
ofn.nFilterIndex = 1;
buf[0] = 0;
ofn.lpstrFile = (LPSTR)buf;
ofn.nMaxFile = sizeof(buf);
ofn.lpstrFileTitle = (LPSTR)achFileTitle;
ofn.nMaxFileTitle = sizeof(achFileTitle);
ofn.lpstrInitialDir = NULL;
ofn.lpstrTitle = "再生用にファイルを開く";
ofn.lpstrDefExt = NULL;
ofn.Flags = OFN_HIDEREADONLY | OFN_FILEMUSTEXIST;
flag=GetOpenFileName((LPOPENFILENAME)&ofn);
if (flag)
SetDlgItemText(hDlg, IDEDIT, buf);
break;
case IDPLAY:
//GetWindowText(GetDlgItem(hDlg, IDEDIT), buf, sizeof(buf));
GetDlgItemText(hDlg, IDEDIT, buf, sizeof(buf));
if (strlen(buf)==0) {
MessageBox(hDlg, "ファイル名を入力してください", "エラー", MB_OK);
break;
}
EnableWindow(GetDlgItem(hDlg, IDPLAY), FALSE);
EnableWindow(GetDlgItem(hDlg, IDCANCEL), FALSE);
EnableWindow(GetDlgItem(hDlg, IDBROWSE), FALSE);
hcur=SetCursor(LoadCursor(NULL, IDC_WAIT)); /* カーソルを砂時計に */
flag=sndPlaySound(buf, SND_SYNC|SND_NODEFAULT);
SetCursor(hcur); /* カーソルを元に戻す */
if (flag==0)
MessageBox(hDlg, "ファイルが見つかりません", "エラー", MB_OK);
EnableWindow(GetDlgItem(hDlg, IDPLAY), TRUE);
EnableWindow(GetDlgItem(hDlg, IDCANCEL), TRUE);
EnableWindow(GetDlgItem(hDlg, IDBROWSE), TRUE);
break;
case IDCANCEL: /* 「閉じる」ボタン OR システムメニューの「閉じる」 */
EndDialog( hDlg, wParam );
break;
default:
return FALSE; /*メッセージを処理しなかった*/
}
break;
case WM_SYSCOMMAND:
switch (wParam) {
case IDM_VER:
MessageBox(hDlg, "簡易サウンドプレーヤ\nバージョン 0.01\nCopyright (c)のぐー",
"バージョン情報", MB_OK);
break;
default:
return FALSE; /*メッセージを処理しなかった*/
}
break;
case WM_INITDIALOG:
hsysmenu=GetSystemMenu(hDlg, FALSE);
AppendMenu(hsysmenu, MF_SEPARATOR, (UINT)-1, "-");
AppendMenu(hsysmenu, MF_STRING | MF_ENABLED, IDM_VER, "バージョン情報");
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;
lpProc = (DLGPROC)MakeProcInstance((FARPROC)easyplay, hinst);
DialogBox(hinst, "EASYPLAY", NULL, lpProc);/*ここでダイアログボックスを作成*/
FreeProcInstance((FARPROC)lpProc);
return 0;
}
ファイル名:easyplay.def
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
戻る