摘要: dynamic_cast支持运行时识别指针或引用所指向的对象。从基类指针获得派生类行为最好的办法是通过虚函数。但是在某些情况下,无法使用虚函数,就需要手动显示转换。如果转换指针失败,则置0;如果转换引用失败,则抛出bad_cast异常。 1 if(Extend *ptr = dynamic_cast... 阅读全文
posted @ 2014-04-29 17:30 TaoyzDream 阅读(260) 评论(0) 推荐(0) 编辑
摘要: 当类中内联函数仅该类调用,则内联函数的定义既可以放在.h也可以放在.cpp。当类中内联函数被外部调用,则内联函数的定义只能放在.h中,否则出现链接错误。“inline成员函数的定义必须在调用该函数的每个源文件中是可见的。” ---- 《C++ Primer 4》P374 阅读全文
posted @ 2014-04-29 17:29 TaoyzDream 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 疑问void max(const int x, const int y);void max(int x, int y);为什么报错:重复声明解释“这种差异并不影响传递至函数的对象...其原因在于实参传递的方式。复制形参时并不考虑形参是否为const---函数操纵的只是副本。函数无法修改实参...这两... 阅读全文
posted @ 2014-04-29 17:28 TaoyzDream 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 问 1 class B 2 { 3 public: 4 virtual void fun() 5 { 6 printf("fun in B\n"); 7 } 8 void b1() 9 {10 printf("b1 in B\n... 阅读全文
posted @ 2014-04-29 17:27 TaoyzDream 阅读(128) 评论(0) 推荐(0) 编辑
摘要: InvalidateRectrect是你指定要刷新的区域,此区域外的客户区域不被重绘,这样防止客户区域的一个局部的改动,而导致整个客户区域重绘而导致闪烁如果最后的参数为TRUE,则还向窗体发送WM_ERASEBKGND消息,使背景重绘,当然在客户区域重绘之前。UpdateWindow在发送之前通过G... 阅读全文
posted @ 2014-04-29 10:31 TaoyzDream 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 失败原因由于类的成员函数有隐含的this指针传递,从而导致一个CALLBACK型的成员函数安装时函数参数个数不匹配。解决方法1)将回调函数挪出类外,并声明为友元2)将回调函数生命为静态成员函数(使用回调函数的某个参数传递当前对象的this指针) 阅读全文
posted @ 2014-04-29 10:30 TaoyzDream 阅读(422) 评论(0) 推荐(0) 编辑
摘要: 疑问为什么GetMessage的第二个参数制定为hwnd后,应用程序无法退出?解释MSDN中指出:当第二个参数为NULL时,GetMessage取得那些属于调用线程的窗口的消息和通过PostThreadMessage函数投递到调用线程的线程消息。GetMessage需要检索到WM_QUIT返回一个F... 阅读全文
posted @ 2014-04-29 10:29 TaoyzDream 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 思路1)拦截 WM_NCHITTEST2)判断可拖动区域3)return HTCAPTION;引申可以拦截WM_NCHITTEST消息之后的 WM_NCLBUTTONDOWN消息,进行进一步控制。但注意 WM_NCLBUTTONUP无法拦截到,除非用HOOK 阅读全文
posted @ 2014-04-29 10:27 TaoyzDream 阅读(122) 评论(0) 推荐(0) 编辑