API(Win32)入門/WM_KEYDOWNとWM_CHAR
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
''[[FrontPage]]''
* キーボードイベントを扱う [#b4997401]
キーボードイベントを受けるマクロにWM_KEYDOWNとWM_CHARがあ...
ウィンドウプロシージャでイベントを受け、WPARAMの値からキ...
** 制約 [#p1aef515]
.NET関数・MFCを使用しないこと。~
*** コメント [#z9e0080d]
ウィンドウがアクティブな状態で何かキーを押すと、メッセー...
2つのマクロの動きの違いを味わってください。(あなたの環境...
~
メイン部分の記述はしませんが、適当なプロシージャのswitch...
UNICODEを意識したtstringについては、[[C++入門/Unicodeに対...
LRESULT CALLBACK WndProc( HWND hWnd, UINT msg, WPARAM wp...
{ ...
switch( msg ) ...
{ ...
case WM_COMMAND: ...
switch( LOWORD( wp ) ) ...
{ ...
case WM_KEYDOWN: ...
{ ...
if(19 == wp) ...
{ ...
PostQuitMessage( END_MSG ); ...
} ...
...
tstring numMsg( _T("押されたキーのコードは ...
TCHAR *codeNum; ...
...
codeNum = new TCHAR[4]; ...
memset( codeNum, '\0', sizeof(codeNum) ); ...
...
_itot( (int)wp, codeNum, 10 ); ...
...
numMsg.append( (TCHAR*)codeNum ); ...
numMsg.append( _T("】 です。\n") ); ...
...
numMsg.append( _T("文字は 【") ); ...
numMsg.append( (PTSTR)&wp ); ...
numMsg.append( _T("】 です。") ); ...
...
delete [] codeNum; ...
...
MessageBox( NULL, numMsg.c_str(), _T("StyleM...
...
return PROCESS_OK; ...
} ...
...
case WM_CHAR: ...
{ ...
tstring numMsg( _T("押されたキーのコードは ...
TCHAR *codeNum; ...
...
codeNum = new TCHAR[4]; ...
memset( codeNum, '\0', sizeof(codeNum) ); ...
...
_itot( ...
(int)wp, ...
codeNum, ...
10 ); ...
...
numMsg.append( (TCHAR*)codeNum ); ...
numMsg.append( _T("】 です。\n") ); ...
...
numMsg.append( _T("文字は 【") ); ...
numMsg.append( (PTSTR)&wp ); ...
numMsg.append( _T("】 です。") ); ...
...
delete [] codeNum; ...
...
MessageBox( NULL, numMsg.c_str(), _T("StyleM...
...
return PROCESS_OK; ...
} ...
...
case WM_DESTROY: ...
PostQuitMessage( END_MSG ); ...
return PROCESS_OK; ...
} ...
...
return DefWindowProc( hWnd, msg, wp, lp ); ...
...
}
*** 参考ページ [#xb0c11fb]
http://wisdom.sakura.ne.jp/system/winapi/win32/win30.html~
http://wisdom.sakura.ne.jp/system/winapi/win32/win31.html~
終了行:
''[[FrontPage]]''
* キーボードイベントを扱う [#b4997401]
キーボードイベントを受けるマクロにWM_KEYDOWNとWM_CHARがあ...
ウィンドウプロシージャでイベントを受け、WPARAMの値からキ...
** 制約 [#p1aef515]
.NET関数・MFCを使用しないこと。~
*** コメント [#z9e0080d]
ウィンドウがアクティブな状態で何かキーを押すと、メッセー...
2つのマクロの動きの違いを味わってください。(あなたの環境...
~
メイン部分の記述はしませんが、適当なプロシージャのswitch...
UNICODEを意識したtstringについては、[[C++入門/Unicodeに対...
LRESULT CALLBACK WndProc( HWND hWnd, UINT msg, WPARAM wp...
{ ...
switch( msg ) ...
{ ...
case WM_COMMAND: ...
switch( LOWORD( wp ) ) ...
{ ...
case WM_KEYDOWN: ...
{ ...
if(19 == wp) ...
{ ...
PostQuitMessage( END_MSG ); ...
} ...
...
tstring numMsg( _T("押されたキーのコードは ...
TCHAR *codeNum; ...
...
codeNum = new TCHAR[4]; ...
memset( codeNum, '\0', sizeof(codeNum) ); ...
...
_itot( (int)wp, codeNum, 10 ); ...
...
numMsg.append( (TCHAR*)codeNum ); ...
numMsg.append( _T("】 です。\n") ); ...
...
numMsg.append( _T("文字は 【") ); ...
numMsg.append( (PTSTR)&wp ); ...
numMsg.append( _T("】 です。") ); ...
...
delete [] codeNum; ...
...
MessageBox( NULL, numMsg.c_str(), _T("StyleM...
...
return PROCESS_OK; ...
} ...
...
case WM_CHAR: ...
{ ...
tstring numMsg( _T("押されたキーのコードは ...
TCHAR *codeNum; ...
...
codeNum = new TCHAR[4]; ...
memset( codeNum, '\0', sizeof(codeNum) ); ...
...
_itot( ...
(int)wp, ...
codeNum, ...
10 ); ...
...
numMsg.append( (TCHAR*)codeNum ); ...
numMsg.append( _T("】 です。\n") ); ...
...
numMsg.append( _T("文字は 【") ); ...
numMsg.append( (PTSTR)&wp ); ...
numMsg.append( _T("】 です。") ); ...
...
delete [] codeNum; ...
...
MessageBox( NULL, numMsg.c_str(), _T("StyleM...
...
return PROCESS_OK; ...
} ...
...
case WM_DESTROY: ...
PostQuitMessage( END_MSG ); ...
return PROCESS_OK; ...
} ...
...
return DefWindowProc( hWnd, msg, wp, lp ); ...
...
}
*** 参考ページ [#xb0c11fb]
http://wisdom.sakura.ne.jp/system/winapi/win32/win30.html~
http://wisdom.sakura.ne.jp/system/winapi/win32/win31.html~
ページ名: