游戏的基本思路设计好了,触发事件的时候就用SendMessage发送一个自定义消息(研究了一下系统已定义的WM_消息,发现只要大于0x0400基本就可以随意使用(不能是0xFFFF),于是选择0x1000开始作为自定义消息),然后根据msg的值和wParam的值来处理。
我终于发现switch语句的好处,原来这个结构在做消息处理,菜单处理的时候是这么好用。
v0.1版实现了游戏开始时的菜单界面,即“新的征程”(开始新游戏)、“重出江湖”(读取存档)、“游戏说明”、“封剑归隐”(退出游戏),用↑↓方向键可以来回选择菜单项并高亮显示。
方向键的消息在回调函数中不能用WM_CHAR接收,要用WM_KEYDOWN,wParam分别是VK_UP和VK_DOWN。
果然是书到用时方恨少,自己动手的时候总是诸般不顺,到底还是没有系统的学习过VC下的win32编程,在屏幕上显示几个字的事情,也折腾了一晚上。
另外还遇到的问题是,在xxx.h定义的类,在xxx.cpp中#include "xxx.h",并实现该类的函数,然后在主函数所在的cpp文件中#include "xxx.cpp",并调用该类,链接的时候总是时不时出现重定义的error,在网上查了一下,这个error很多人都遇到过,但是却没有搜到有效的解决办法。无奈之下只好把类都写在一个文件下。。为此十分郁闷。
另外碰到问题时,在网上查到的讨论,大多都是基于MFC的,而因为我没有使用MFC,所以很多时候要费一番周折。