菜单单选和复选状态的区别
复选和单选状态下通过GetMenuState()返回的值是不同的:
复选状态下返回的值是8也就是MF_CHECKED标识
而单选状态返回值是520转换为十六进制为208。
在MSDN中定义的标识:
#define MF_UNCHECKED 0x00000000L
#define MF_CHECKED 0x00000008L
#define MF_USECHECKBITMAPS 0x00000200L
由此可知在单选状态下应该是MF_CHECKED| MF_USECHECKBITMAPS
自绘制菜单的实现思路
有两个虚函数必须重载分别为MeasureItem(LPMEASUREITEMSTRUCTlpMIS)和
DrawItem(LPDRAWITEMSTRUCT lpDIS)。