WM_CHAR..메시지의..lParam값은..WM_KEYDOWN이나..
관련된..다른..키보드..메시지의..lParam...값과..동일합니다..
0-15비트에는..이..키가..몇번..눌러졌는가..하는..값이..들어있고..
그러니까..LOWORD(lParam)을..알아보면..되겠죠..
이값은..윈도우즈가..키가..연속적으로..눌려졌는데..
그..숫자에..맞는..WM_CHAR메시지를..보내지..못할때..
중복된..값을..알려주는..것이구요..
음..나머지..비트들에는..별달리..알아야..할것들이..없는데..
16-23비트..에는..OEM 스캔코드가..들어있고..
스캔코드는..음..도스에서..프로그래밍하셨다면..
잘..아실텐데..윈도우즈에서는..별로..필요가~~~없죠~~
24비트는..확장키코드라고..F1~F12의..펑션키나..
숫자판의..키같이..확장키들이..눌려질경우..1로..세팅되구요..
29비트는..Alt키가..눌려지면..1로..세팅되고..
30비트하고..31비트는..정말..필요없는..것같아서..~~~
그냥..말하자..하하~~
30비트는..이전에..그..키에대한..메시지가..왔냐..하는..
건데..메시지가..WM_KEYDOWN...WM_CHAR..WM_KEYUP..
이런식으로..한문자가..눌려졌을때..들어오잖아요..
그러니까..WM_KEYUP같은건..이..비트가..항상..1이고..
WM_KEYDOWN..같은건..눌려졌을..때..같이..연속적으로..
그..키에대한..메시지가.들어오면..1입니다..
31비트는..WM_KEYDOWN과..WM_SYSKEYDOWN같은..
눌려지는..키는..0이고..
WM_KEYUP과..WM_SYSKEYUP은..1이죠..
질문하신..내용에..상관없이..
다른..분들도..참고하실..일이..있을것..같아서..
좀..자세하게..많이..썼구요..
PROGRAMMING WINDOWS95하고..온라인..도움말을..
참고했습니다..
~~X~~
|