HWND MCIWndCreate( HWND hwndParent , HINSTANCE hInstance , DWORD dwStyle , LPSTR szFile );hwndParent には、MCI ウィンドウの親ウィンドウのハンドルを
定数 | 解説 |
---|---|
MCIWNDF_NOAUTOSIZEMOVIE | MCIWnd ウィンドウのサイズが変化しても ディスティネーション矩形の寸法を変更しない |
MCIWNDF_NOAUTOSIZEWINDOW | イメージのサイズが変化しても MCI のウィンドウサイズは変更しない |
MCIWNDF_NOERRORDLG | MCIエラーのユーザーへの表示を禁止する |
MCIWNDF_NOMENU | ツールバーの「メニュー」ボタンを隠す |
MCIWNDF_NOOPEN | MCIWnd メニューの「開く」及び「閉じる」コマンドを隠す |
MCIWNDF_NOPLAYBAR | ツールバーを隠す |
MCIWNDF_NOTIFYALL | 全ての MCIWNDF ウィンドウ通知スタイルを使用する |
MCIWNDF_NOTIFYERROR | MCI エラーの発生を親ウィンドウに通知する |
MCIWNDF_NOTIFYMEDIA | 新規デバイスの仕様とデータファイルのオープン、クローズを MCIWNDM_NOTIFYMEDIA メッセージで親ウィンドウに通知する |
MCIWNDF_NOTIFYMODE | デバイス動作モードの変更を MCIWNDM_NOTIFYMODE メッセージで親ウィンドウに通知する |
MCIWNDF_NOTIFYPOS | コンテンツ内の再生位置、記録位置の変更を MCIWNDM_NOTIFYPOS メッセージで親ウィンドウに通知する |
MCIWNDF_NOTIFYSIZE | MCI ウィンドウのサイズの変更を親ウィンドウに通知する |
MCIWNDF_RECORD | MCI デバイスに記録機能がある場合、ツールバーに「記録」ボタンを追加し メニューに新しいファイルコマンドを追加する |
MCIWNDF_SHOWALL | 全ての MCIWINDF_SHOW スタイルを使う |
MCIWNDF_SHOWMODE | MCI デバイスの現在のモードを、ウィンドウのタイトルバーに表示する |
MCIWNDF_SHOWNAME | 開いている MCI デバイス、またはデータファイルの名前を MCI ウィンドウのタイトルバーに表示する |
MCIWNDF_SHOWPOS | MCI デバイスのコンテンツ内の現在位置を ウィンドウのタイトルバーに表示する |
#include <windows.h> #include <vfw.h> #define TITLE TEXT("Kitty on your lap") PSTR strAvi; LRESULT CALLBACK WndProc(HWND hWnd , UINT msg , WPARAM wp , LPARAM lp) { static HWND hMCI; switch (msg) { case WM_DESTROY: MCIWndDestroy(hMCI); PostQuitMessage(0); return 0; case WM_CREATE: hMCI = MCIWndCreate(hWnd , ((LPCREATESTRUCT)lp)->hInstance , WS_CHILD | WS_VISIBLE | WS_BORDER , strAvi); return 0; case WM_SIZE: MoveWindow(hMCI , 0 , 0 , LOWORD(lp) , HIWORD(lp) , FALSE); return 0; } return DefWindowProc(hWnd , msg , wp , lp); } int WINAPI WinMain(HINSTANCE hInstance , HINSTANCE hPrevInstance , PSTR lpCmdLine , int nCmdShow ) { HWND hWnd; MSG msg; WNDCLASS winc; strAvi = lpCmdLine; winc.style = CS_HREDRAW | CS_VREDRAW; winc.lpfnWndProc = WndProc; winc.cbClsExtra = winc.cbWndExtra = 0; winc.hInstance = hInstance; winc.hIcon = LoadIcon(NULL , IDI_APPLICATION); winc.hCursor = LoadCursor(NULL , IDC_ARROW); winc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); winc.lpszMenuName = NULL; winc.lpszClassName = TEXT("KITTY"); if (!RegisterClass(&winc)) return -1; hWnd = CreateWindow( TEXT("KITTY") , TITLE , WS_OVERLAPPEDWINDOW | WS_VISIBLE , CW_USEDEFAULT , CW_USEDEFAULT , CW_USEDEFAULT , CW_USEDEFAULT , NULL , NULL , hInstance , NULL ); if (hWnd == NULL) return -1; while(GetMessage(&msg , NULL , 0 , 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam; }
PSゲーム「ひざの上の同居人〜Kitty on your lap〜」より ©KANEKO, アストロビジョン, CULTURE PUBLISHERS あぁ…趣味が見え隠れ……。っえ!?もうバレてる? |
/*resource.h*/ #define IDM_OPEN 100
/*リソーススクリプト*/ #include "resource.h" KITTY MENU { POPUP "File(&F)" { MENUITEM "Open(&O)" , IDM_OPEN } }
#include <windows.h> #include <vfw.h> #include "resource.h" #define TITLE TEXT("Kitty on your lap") LRESULT CALLBACK WndProc(HWND hWnd , UINT msg , WPARAM wp , LPARAM lp) { static HWND hMCI; static OPENFILENAME ofn; static TCHAR strFile[MAX_PATH]; switch (msg) { case WM_DESTROY: MCIWndDestroy(hMCI); PostQuitMessage(0); return 0; case WM_CREATE: ofn.lStructSize = sizeof (OPENFILENAME); ofn.hwndOwner = hWnd; ofn.lpstrFilter = TEXT("Mdia File \0*.avi;*.mpg;*.wav\0"); ofn.nMaxCustFilter = 256; ofn.nFilterIndex = 0; ofn.lpstrFile = strFile; ofn.nMaxFile = MAX_PATH; ofn.Flags = OFN_FILEMUSTEXIST; hMCI = MCIWndCreate(hWnd , ((LPCREATESTRUCT)lp)->hInstance , WS_CHILD | WS_VISIBLE | MCIWNDF_NOPLAYBAR , NULL); return 0; case WM_COMMAND: switch (LOWORD(wp)) { case IDM_OPEN: if (GetOpenFileName(&ofn)) { MCIWndClose(hMCI); MCIWndOpen(hMCI , strFile , 0); MCIWndPlay(hMCI); } } return 0; } return DefWindowProc(hWnd , msg , wp , lp); } int WINAPI WinMain(HINSTANCE hInstance , HINSTANCE hPrevInstance , PSTR lpCmdLine , int nCmdShow ) { HWND hWnd; MSG msg; WNDCLASS winc; winc.style = CS_HREDRAW | CS_VREDRAW; winc.lpfnWndProc = WndProc; winc.cbClsExtra = winc.cbWndExtra = 0; winc.hInstance = hInstance; winc.hIcon = LoadIcon(NULL , IDI_APPLICATION); winc.hCursor = LoadCursor(NULL , IDC_ARROW); winc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); winc.lpszMenuName = TEXT("KITTY"); winc.lpszClassName = TEXT("KITTY"); if (!RegisterClass(&winc)) return -1; hWnd = CreateWindow( TEXT("KITTY") , TITLE , WS_OVERLAPPEDWINDOW | WS_VISIBLE , CW_USEDEFAULT , CW_USEDEFAULT , CW_USEDEFAULT , CW_USEDEFAULT , NULL , NULL , hInstance , NULL ); if (hWnd == NULL) return -1; while(GetMessage(&msg , NULL , 0 , 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam; }
PSゲーム「ひざの上の同居人〜Kitty on your lap〜」より ©KANEKO, アストロビジョン, CULTURE PUBLISHERS |
HWND MCIWndCreate( HWND hwndParent , HINSTANCE hInstance , DWORD dwStyle , LPSTR szFile );MCIWnd ウィンドウクラスのウィンドウを作成します
定数 | 解説 |
---|---|
MCIWNDF_NOAUTOSIZEMOVIE | MCIWnd ウィンドウのサイズが変化しても ディスティネーション矩形の寸法を変更しない |
MCIWNDF_NOAUTOSIZEWINDOW | イメージのサイズが変化しても MCI のウィンドウサイズは変更しない |
MCIWNDF_NOERRORDLG | MCIエラーのユーザーへの表示を禁止する |
MCIWNDF_NOMENU | ツールバーの「メニュー」ボタンを隠す |
MCIWNDF_NOOPEN | MCIWnd メニューの「開く」及び「閉じる」コマンドを隠す |
MCIWNDF_NOPLAYBAR | ツールバーを隠す |
MCIWNDF_NOTIFYALL | 全ての MCIWNDF ウィンドウ通知スタイルを使用する |
MCIWNDF_NOTIFYERROR | MCI エラーの発生を親ウィンドウに通知する |
MCIWNDF_NOTIFYMEDIA | 新規デバイスの仕様とデータファイルのオープン、クローズを MCIWNDM_NOTIFYMEDIA メッセージで親ウィンドウに通知する |
MCIWNDF_NOTIFYMODE | デバイス動作モードの変更を MCIWNDM_NOTIFYMODE メッセージで親ウィンドウに通知する |
MCIWNDF_NOTIFYPOS | コンテンツ内の再生位置、記録位置の変更を MCIWNDM_NOTIFYPOS メッセージで親ウィンドウに通知する |
MCIWNDF_NOTIFYSIZE | MCI ウィンドウのサイズの変更を親ウィンドウに通知する |
MCIWNDF_RECORD | MCI デバイスに記録機能がある場合、ツールバーに「記録」ボタンを追加し メニューに新しいファイルコマンドを追加する |
MCIWNDF_SHOWALL | 全ての MCIWINDF_SHOW スタイルを使う |
MCIWNDF_SHOWMODE | MCI デバイスの現在のモードを、ウィンドウのタイトルバーに表示する |
MCIWNDF_SHOWNAME | 開いている MCI デバイス、またはデータファイルの名前を MCI ウィンドウのタイトルバーに表示する |
MCIWNDF_SHOWPOS | MCI デバイスのコンテンツ内の現在位置を ウィンドウのタイトルバーに表示する |
定数 | 解説 |
---|---|
MCIWNDOPEN_NEW | szFile で指定した名前で新しいファイルを作成します |