MFC中错误知识总结(一)
1、在继承与派生中,单目:表示派生,双目::表示继承,例如
class A
{
public:
void c();
};
class B: public A
{}; //类B继承类A
void A:: c()
{
}; //A派生成员函数c
2、获取窗口的指针、句柄以及窗口的指针
CWnd *pWnd = GetDlgItem(ID_***); // 取得控件的指针 HWND hwnd = pWnd->GetSafeHwnd(); // 取得控件的句柄 CDC* pdc = pwnd->GetWindowDC(); //取得CDC的指针
3、CString中的Format()函数的用法:
CString str;
int a=3;
str.Format("%d",a); //这里表示的是str=“3”,3以字符串的形式传给str。
4、在运行其他的地方复制MFC程序,在修改VC++目录的“包含目录”和“库目录”的路径时候,如果原来已经默认设置继承的值(下图),只需要将包含目录下的路径给删除掉,然后包含目录和库目录(红色矩形方框中)右端的下拉菜单中选择“从父级或项目默认设置继承”,就OK了。

5、同名全局变量与局部变量的区别:
- 实例一:
void function() { ; //在这个局部函数中,x的值1,它是个局部变量 } main() { ; function() ; //执行完function,main函数中,x的值是0,它也是个局部变量 } //在{}中定义的变量全是局部变量,各函数中的同名变量各不相关。打个比方:就是老张家的小三和老李家的小三同名,但各不相干!- 实例二:不处在任何一对{}中的变量,就称之为全局变量,一般我们把这些全局变量定义在文件头。如:
; void function() { x=; //在这个局部函数中,x的值1,而且这个x是全局变量x (因为x在这函数内没有定义,所以它是全局变量) } main() { ; //这是个局部变量,全局变量x在这里被隐藏了,你是看不到的。(x在main函数内定义,所以它是局部变量) function() ; //执行完function,main函数中的x的值是9,而全局变量x的值是1 } //全局变量遇到同名的局部变量,全局变量在这个函数中暂时消失!只要出了这个函数就会再现
6、wstring与string的区别:wstring是宽char,Unicode编码,一般情况下一个字符占两个字节大小;string是窄char,AscII编码,一个字符占一个字节大小
7、在单文档MFC程序中,如果仅想添加Dialog对话框,那么直接在资源位图中Dialog中点击鼠标右键,选择”插入Dialog“就行,不必选择”添加资源“,在”添加资源“中给出为属性对话框,而采用DoModal是不能显示指定的对话框
8、当VS2010窗口布局打乱后恢复到默认:窗口->重置窗口布局
9、注意printf与sprintf的区别
int printf (const char* szFormat,......); //第一个参数是一个格式字符串,后面是与格式字符串中的代码相对应的不同类型的多个参数
int sprintf(char* szBuffer, const char* szFormat,.....);//第一个参数是一个字符缓冲区;后面是一个格式字符串。sprintf并不是将格式化结果写到标准输出,而是将其存入szBuffer。该函数返回字符串的长度,在字符模式编程环境中,
printf("The sum of %i and %i is %i",5,3,5+3);
的功能等同于以下语句:
char szBuffer[100];
sprintf(szBuffer,"The sum of %i and %i is %i",5,3,5+3);
10、
MFC中错误知识总结(一)的更多相关文章
- MFC中线程相关知识
MFC中把线程分为两种类型,UI线程和工作者线程. MFC中启动一个线程的最好方法是调用AfxBeginThread,有两个版本,一个用于启动Ui线程,另外一个用于启动工作者线程.在MFC程序中,只有 ...
- js中错误处理的相关知识
错误bug是指程序执行过程中,导致程序无法正常执行的情况. 后果:程序会强行中断退出: 错误处理: 即使程序出现错误,也保证程序不异常中断的机制. 一般的使用的代 ...
- 在VC/MFC中嵌入Google地图——图文并茂
近期须要实验室须要将在无人机地面站中嵌入地图,在网上找了非常多资料,最终有些眉目了, 首先.做这个须要用到的知识有.MFC控件.MFC类库.JavaScript脚本语言.Google API.Goog ...
- MFC中快速应用OpenCV(转)
转载链接:http://wiki.opencv.org.cn/index.php/MFC%E4%B8%AD%E5%BF%AB%E9%80%9F%E5%BA%94%E7%94%A8OpenCV 简介和缘 ...
- MFC中添加OpenGL
WINDOWS下展示OpenGL有多种形式: MFC 或 win32,该如何向MFC中添加OpenGL?下面是介绍最简单OpenGL框架. 1.首先通过VS建立MFC应用程序-MyOpenGL,选择单 ...
- 转:MFC中创建多线程
MFC中创建多线程 MFC的多线程函数必须声明为静态的或者是全局函数(不同的在于全局函数不能访问类的私有静态成员,而静态类函数可以):但这样的线程函数只能访问静态的成员变量,要实现访问类的其他成员 ...
- 多线程编程之二 ---MFC中的多线程开发
下载源代码 五.MFC对多线程编程的支持 MFC中有两类线程,分别称之为工作者线程和用户界面线程.二者的主要区别在于工作者线程没有消息循环,而用户界面线程有自己的消息队列和消息循环. 工作者线程没有消 ...
- SonicUI在MFC中的使用
SonicUI是一个GUI引擎,提供了一些简单的UI组件实现高效率的UI效果,例如:自绘按钮.异形窗体.动画.超链接和图像操作方法.此项目作者开源到CodeProject,地址为:http://www ...
- MFC 中线程传递CString 是不安全的 转
MFC 中线程传递CString 是不安全的 在MFC中,向线程传递CString变量参数时,很容易犯一个错误,就是使用一个超出生存期的变量,在主函数中定义的CString变量是局部变量 ...
随机推荐
- Python-memcached的基本使用
想学Python,又想研究下memcached的客户端,于是拿Python-memcached研究研究~~~ 1.memcached的安装 请参考本博另一文章<Linux下安装memcached ...
- Layout Support 获取上下bar的长度
Layout Support This protocol . You can use layout guides as layout items in the NSLayoutConstraint f ...
- spring注解注入失败一个原因
所有的注解看起来都没有任何问题,最后是由于web-xml配置问题. 由于缺少监听器org.springframework.web.context.ContextLoaderListener, 导致无法 ...
- 搭建SpringMVC+MyBatis开发框架四
在src/main下面新建一个resouces文件夹,我们继续配置一些资源 1.新增applicationContext.xml:  <?xml version="1.0" ...
- WPS for ubuntu14
QGtkStyle could not resolve GTK. Make sure you have installed the proper libraries. sudo apt-get ins ...
- php 设计API之优化 记
服务器端 可以考虑使用rest实现,清晰url:put http://aa.com/news 客户端 curl实现muliti机制,实现多线程并发,节省多接口调用的时间 curl实现keepalive ...
- foxmail收发gmail彻底失败
周一一上班,发现gmail无法收取邮件,刚开始以为网络不稳定,后来经过百度发现原因是 gmail邮箱也被屏蔽了. 虽然可以FQ,保证gmail邮箱暂时使用,但是不可否认,在当前的形势下, ...
- discuz之搭建
本篇将介绍IIS+MySQL+DiscuzX3.1+UCenter1.6+Asp.Net+PHP的部署 大部分都是搬运过来的,当然我会注明搬运地点 搭建 首先说明本机基本信息 系统========== ...
- ios读取通讯录信息
ios读取通讯录信息 (2012-05-22 14:07:11) 标签: ios读取通讯录 it iphone如许app读取通讯录信息,读取通讯录信息时需要加载AddressBookUI 和Add ...
- [Shoi2007]Bookcase 书柜的尺寸 dp
这道dp算是同类型dp中比较难的了,主要难点在于设置状态上: 如果像平时那样设置,必定爆空间没商量: 下面是一种思路: 先把输入进来的数据按h从大到小排序,这样就可以大大减少状态数, 然后设f[i][ ...