#include <windows.h>
#include <windowsx.h>
#include "resource.h"
#include <aygshell.h>
#pragma comment(lib,"aygshell.lib")
//関数の宣言
BOOL DlgProc(HWND,UINT,WPARAM,LPARAM);
void Paint();
//変数の宣言
HWND hDlg=NULL;
BOOL key[256]={0};
//メイン
int WinMain(HINSTANCE hDlgance,HINSTANCE hPrevInstance,
LPWSTR lpCmdLine,int nShowCmd) {
//ダイアログの生成
DialogBoxW(hDlgance,MAKEINTRESOURCE(IDD_DIALOG1),NULL,DlgProc);
return 0;
}
//ダイアログのイベント処理
BOOL DlgProc(HWND hDialog,UINT uMsg,WPARAM wp,LPARAM lp) {
switch(uMsg) {
//初期化
case WM_INITDIALOG:
{
//ダイアログの設定
SHINITDLGINFO sidi={
SHIDIM_FLAGS,hDialog,
SHIDIF_DONEBUTTON|SHIDIF_SIZEDLGFULLSCREEN|SHIDIF_EMPTYMENU};
SHInitDialog(&sidi);
//インスタンス保持
hDlg=hDialog;
}
break;
//キーダウン
case WM_KEYDOWN:
key[wp]=TRUE;
Paint();
break;
//キーアップ
case WM_KEYUP:
key[wp]=FALSE;
Paint();
break;
//コマンド
case WM_COMMAND:
switch(LOWORD(wp)) {
//OKボタン
case IDOK:
EndDialog(hDialog,LOWORD(wp));
break;
}
break;
//クローズ
case WM_CLOSE:
DestroyWindow(hDialog);
break;
}
return FALSE;
}
//描画
void Paint() {
TCHAR wstr[1024]={0};
StringCchCat(wstr,1024,_T("KeyEx>"));
if (key[VK_UP]) StringCchCat(wstr,1024,_T("上"));
if (key[VK_DOWN]) StringCchCat(wstr,1024,_T("下"));
if (key[VK_LEFT]) StringCchCat(wstr,1024,_T("左"));
if (key[VK_RIGHT]) StringCchCat(wstr,1024,_T("右"));
Static_SetText(GetDlgItem(hDlg,IDC_STATIC1),wstr);
}
|