非常不明白的一个有关问题,希望大家给看一下,多谢拉

非常不明白的一个问题,希望大家给看一下,谢谢拉
我用MFC做一个基于EDIT的编辑框控件,当我添加一个布尔型的自定义属性时,想要序列化该属性,于是调用PX_Bool( CPropExchange* pPX, LPCTSTR pszPropName, BOOL& bValue );函数,可是在添加属性时,属性对应的成员变量类型系统给定的布尔型是VARIANT_BOOL,当我把这个成员变量赋到bValue时,编译出错。类型不匹配,我只好手动把成员变量改成了BOOL型,难道时PX_BOOL函数设计不合理,还是由其他原因呢?我应该怎么做呢?

问题二:
当我在类中添加成员CBrush m_brush; 然后在类成员函数中写:m_brush.CreateSolidBrush(),当加载控件时,程序崩溃,而我这样写m_brush.DeleteObject();m_brush.CreateSolidBrush();程序运行正常,这是为什么啊 ,为什么要先删对象,我也没有初始化m_brush成员呢?

希望大家给小弟看看,指教一下,谢啦


------解决方案--------------------
MFC自动完成普通类型到OLE类型的双向转换,所以你直接使用BOOL就可以了,不需要直接使用VARIANT_BOOL

你应该是多次调用了brush.CreateSolidBrush()才会出错,前一次创建的画刷还未删除就想创建新的,会引发断言。