我发现OnDraw是从OnDrawAdvanced调用来的,
而OnDrawAdvanced是从OnPaint来的,
然而OnDraw的参数里ATL_DRAWINFO的成员并没有保留PAINTSTRUCT里的很有用的rcPaint。我想通过修改ATL_DRAWINFO结构体来添加这个成员不知道可不可以?我试着向ATL_DRAWINFO结构添加了成员,还真的编译过去了,数据也是对的,我不理解的是我的程序设置是静态引用ATL类库,那么我修改源码这个类库也会重新编译吗。MFC的好像是不可以这样的?
而OnDrawAdvanced是从OnPaint来的,
然而OnDraw的参数里ATL_DRAWINFO的成员并没有保留PAINTSTRUCT里的很有用的rcPaint。我想通过修改ATL_DRAWINFO结构体来添加这个成员不知道可不可以?我试着向ATL_DRAWINFO结构添加了成员,还真的编译过去了,数据也是对的,我不理解的是我的程序设置是静态引用ATL类库,那么我修改源码这个类库也会重新编译吗。MFC的好像是不可以这样的?
MFC的不行,估计是预编译头造成的。取消预编译头,应该也能生效。
不过个人觉得像ATL_DRAWINFO结构里还上那个刷新用的RECT不是很好吗?为什么没有加呢?
atl 修改是否生效 要看你的工程是否使用静态/动态库,如果是动态,你的修改是不能影响atl.dll的,就无效
如果是静态,可以影响编译进你的代码里的atl 的源代码,就生效了总之就是 静态的时候,修改会编译进你的程序里,就会生效
动态的时候,不会影响已经编译好的atl.dll,就不会生效