|
안녕하세요 윈도우 메세지 관련해서 공부를 하고 있는데
궁금한점이 있어 글을 옵립니다...
그림에서 보시는 것처럼
WM_DEVMODECHANGE = 0x1B 인데 실제로 Msg를 확인해 보면 값이 틀려요
이상해서 다른 메세지를 확인해 보았더니 WM_MOUSEACTIVATE 하고 WM_CLOSE는 또 맞더라구요
제가 잘못한 부분이 있는건가요?
헤더에는
BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(WM_DEVICECHANGE, TMessage, OnHotKey)
MESSAGE_HANDLER(WM_MOUSEACTIVATE , TMessage , OnMouse)
MESSAGE_HANDLER(WM_CLOSE , TMessage , OnCLose)
END_MESSAGE_MAP(TForm)
void __fastcall OnHotKey(TMessage& Msg);
void __fastcall OnMouse(TMessage& Msg);
void __fastcall OnCLose(TMessage& Msg);
이렇게 했구요...
또한가지는 예를 들어
WM_DEVICECHANGE 메세지의 경우는 WParam을 이용해서 새로운 디바이스인지 확인하는데
WM_MOUSEACTIVATE 메세지의 경우는 그냥 Msg값만을 사용해서 다른 행위를 하던데..
메세지만 보고 WParam을 쓸지 Msg를 쓸지를 알수 있는건가요?
WM_DEVICECHANGE 메세지의 경우는 헤더파일도 틀리던데..
(WParam을 이용하려면 #include <dbt.h> Include를 해야하더라구요)
아님 고수님들도 그때마다 어떻게 써야 할지 찾는지요..(이 부분이 상당히 궁금합니다.)
답변 부탁드립니다..
|