.思路
在switch中写宏处理,实际处理过程放外面,并且switch中的宏处理要写得像c++重载函数
1.统一宏函数HAND_MSG(
。。。。)∥这是个宏
2.给宏处理加一个函数指针,在switch外处理实际消息
HAND_MSG(。。。。fn)
3.由于要处理不同消息,宏中肯定要个message标识不同函数
HAND_MSG(message,fn。。。)∥类似这样
实际
1.把HAND_MSG(message ,fn)转化为各类宏(编写一次)
2.把转化过来再次定义成宏实现fn指针
3.由1的宏转换导致各种不同宏,而各种不同转换结果导致不同的fn函数,从而导致2可编写许多
example:(lparam,wparam不写,举例)
1.#define HAND_MSG(int message,fn)
HAND_##message(fn)
HAND_MSG(WM_SIZE,onsize)转换为
hand_wm_size(fn)
hand_msg(wm_paint.onpaint)转化为
hand_wm_paint(fn)
2.实现各类转换
#define handle_wm_size(fn) fn(。。。。。)
#define handle_wm_paint(fn) fn(。。。。。)
由于hand_wm_size(fn)替代为fn(…)
由于fn是宏,fn可以被任何东西替代,fn可以 写在switch外面