Win32 API:WM_KEYDOWN消息处理问题,按键盘时,怎么没有响应事件?||希望大家帮忙,谢谢!!!
下面的程序是一本书的一个例子。
我在按键盘中的1、2、3,程序没有相应的响应事件。
这是怎么回事?
//-----------------------------------------------------------------------------
// Desc: 消息处理
//-----------------------------------------------------------------------------
LRESULT WINAPI MsgProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam )
{
switch( msg )
{
case WM_DESTROY:
Cleanup();
PostQuitMessage( 0 );
return 0;
case WM_KEYDOWN:
switch(wParam)
{
case 49: //"1"键
case 50: //"2"键
case 51: //"3"键
case 52: //"4"键
case 53: //"5"键
case 54: //"6"键
type= (int)wParam-48;
break;
}
}
return DefWindowProc( hWnd, msg, wParam, lParam );
}
//-----------------------------------------------------------------------------
// Desc: 入口函数
//-----------------------------------------------------------------------------
INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR, INT )
{
//注册窗口类
WNDCLASSEX wc = {...};
RegisterClassEx( &wc );
//创建窗口
HWND hWnd = CreateWindow(...);
//初始化
if( SUCCEEDED( ...) ) )
{
if( SUCCEEDED( ...) )
{
//显示窗口
ShowWindow( hWnd, SW_SHOWDEFAULT );
UpdateWindow( hWnd );
//进入消息循环
MSG msg;
ZeroMemory( &msg, sizeof(msg) );
while( msg.message!=WM_QUIT )
{
if( PeekMessage( &msg, NULL, 0U, 0U, PM_REMOVE ) )
{
TranslateMessage( &msg );
DispatchMessage( &msg );
}
else
{
...
}
}
}
}
UnregisterClass( L"ClassName", wc.hInstance );
return 0;
}