-
[3] - Window MessagesGraphics 2021. 7. 3. 01:46
List Of Windows Messages - WineHQ Wiki
많은 Windows Messages가 있습니다. 전부 있다고는 할 수 없으나 대부분 있습니다. MSDN보다 낫습니다.
List Of Windows Messages - WineHQ Wiki
"What is the window message numbered x?" There is no list mapping numbers to symbolic message names in MSDN. The table below provides the mappings. Hex Decimal Symbolic 0000 0 WM_NULL 0001 1 WM_CREATE 0002 2 WM_DESTROY 0003 3 WM_MOVE 0005 5 WM_SIZE 0006 6
wiki.winehq.org
planetchili (chili) (github.com)
planetchili - Overview
planetchili has 36 repositories available. Follow their code on GitHub.
github.com
많은 도움을 받을 예정이며 이 모든 글의 전부입니다.
이 글은 약간의 C++기초지식이 필요합니다.
unordered_map in C++ STL - GeeksforGeeks
unordered_map in C++ STL - GeeksforGeeks
A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.
www.geeksforgeeks.org
Unordered_map은 기본적으로 Hash table을 이용해서 Key value와 Mapped Value 한 쌍의 자료를 저장하는 Container의 일종인데 위에서 본 수 많은 Messages들을 저장해야 하며 별 다른 Hash Function을 정의해주지 않아도 평균적으로 O(1)의 cost가 나옵니다. DWORD인 Window Message의 ID와 Message의 name이 될 string을 묶어주기 위해 나쁘지 않은 선택입니다.
* Macro의 '#'은 뒤에 오는 것을 String Literal로 바꾸어 줍니다. 위의 GitHub Link에 Tag별로 잘 정리된 것이 있습니다. T3인가 T4인가 그럴겁니다.
Window 내부를 Client Area라고 하고 밖을 그냥 Non-Client라고 합니다. Messages를 모조리 Mapping 했고 Console로 출력하기로 했으니 디버그 돌리고 Console Output창 보면 행동하는대로 다 나옵니다. 어떤 Message가 어떤 행동과 상응하는지 알기 좋습니다.
정의한 WndProc의 Case에 WM들을 적당히 활용해보면 LPARAM과 RPARAM이 각각 어떤 느낌으로 활용하면 좋을 지 감은 잡을 수 있습니다. 여기서는 WM_KEYDOWN을 주로 보았으며 다룬 WPARAM은 non-system key의 virtual key-code들이고 LPARAM은 그외 잡다한 모든 것들이었습니다. 자세히 공부하려면 MSDN을 Scratch부터 읽어보는 편이 좋습니다.
'Graphics' 카테고리의 다른 글
[5] - Window Framework (0) 2021.07.10 [4] - Mouse and Char (0) 2021.07.03 [2] - Message Pump (0) 2021.07.03 [1] - Creating a window (0) 2021.07.02 [ Anything ] C++ - 1 (0) 2021.06.21