摘要: 看以下两个消息响应函数和运行效果的区别 第一种写法:第二次触发函数时,hWnd有值 第二种写法:第二次触发函数时,hWnd为0 总结:第一种情况new Button在if块里面,第二种情况在外面;第二次触发函数时,第一种情况进入else块,可以销毁控件;第二种情况,又new了一个Button出来,而 阅读全文
posted @ 2016-08-06 21:50 发展才是硬道理 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 粘贴一些关键代码(IN FILE_MYBOLE): CMyboleView窗口类中 初始化指针CTestDlg类的对象指针为NULL 然后处理OK或者Cancel按钮 Cancel OK 最后重写PostNcDestroy用来真正的销毁CTestDialog对象 阅读全文
posted @ 2016-08-06 20:48 发展才是硬道理 阅读(473) 评论(0) 推荐(0) 编辑
摘要: 在mfc中大家经常用GetParent方法获取父窗口指针,但你会发现有时候他返回的并不是你理解上的父窗口,为什么了? 这是变态的微软隐含的一些约束导致的。 子窗口是不可以作为Dialog的父窗体的,至少MFC中是不能。 // a popup window cannot be owned by a c 阅读全文
posted @ 2016-08-06 19:59 发展才是硬道理 阅读(3397) 评论(0) 推荐(0) 编辑
摘要: 在MFC编程中遇到了两种虚函数的特性,看如下代码,B继承于A,C继承于B,D继承于C,E继承于D,F继承于E。 第一种特性: 主函数中创建类C的对象,用ptr指针来指向这个对象,1:然后调用虚函数vFunc(), 运行结果为vFuncC,分析原因:即使D、E、F类都继承了C类且互相继承,但是调用虚函 阅读全文
posted @ 2016-08-05 22:35 发展才是硬道理 阅读(531) 评论(0) 推荐(0) 编辑
摘要: 画出来的效果是这样子的:可以看到,线条根本不可能超出CDrawView的客户区(也就是CDrawView的整个区域) 2. 我把CClientDC的构造函数参数改变一下,改成用GetParent(), 也就是取View窗口的父窗口,也就是框架窗口Frame的指针 发现效果是这样的: 画的线条可以超出 阅读全文
posted @ 2016-08-05 20:49 发展才是硬道理 阅读(572) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2016-07-18 20:57 发展才是硬道理 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 一、存储方式 存储方式分为静态存储和动态存储两大类。 存储类别有4种:自动的(Auto)、静态的(static)、寄存器的(register)、外部的(extern) 1、自动变量 函数中局部变量,如果不用关键字static加以声明,编译系统对它们是动态地分配存储空间的。函数的形参和在函数中定义的变 阅读全文
posted @ 2016-07-17 19:39 发展才是硬道理 阅读(350) 评论(0) 推荐(0) 编辑
摘要: 变量的有效范围称为变量的作用域。变量有4种不同的作用域:文件作用域,函数作用域,块作用域和函数原型作用域。文件作用域是全局的,其他三者是局部的。 除了变量之外,任何以标识符代表的实体(如函数、数组、结构体、类等)都有作用域,概念与变量的作用域类似。 全局变量: 全局变量的作用域只限于定义的位置起到文 阅读全文
posted @ 2016-07-17 17:19 发展才是硬道理 阅读(542) 评论(0) 推荐(0) 编辑
摘要: inline int max( int , int ,int ); //声明 inline int max( int a, int b, int c) //定义 { if( b > a) a = b; if( c > a) a = c; return a; } !!!注意:可以在声明函数和定义函数的 阅读全文
posted @ 2016-07-17 16:46 发展才是硬道理 阅读(790) 评论(0) 推荐(0) 编辑
摘要: 一、数组和指针 数组名同时也是该数组首元素的地址。例如:flizny == &flizny[0] , flizny 和 &flizny[0]都代表首元素的内存地址,两者都是常量; 指针+1的结果就是对该指针增加一个存储单元,对于数组而言,地址会增加到下一元素的地址,而不是下一个字节。 可以用以下等式 阅读全文
posted @ 2016-07-16 16:44 发展才是硬道理 阅读(165) 评论(0) 推荐(0) 编辑