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变量是局部变量 ...
随机推荐
- android开发分辨率问题解决方案
dpi是什么呢?dpi是“dot per inch”的缩写,每英寸像素数.四种密度分类: ldpi (low), mdpi (medium), hdpi (high), and xhdpi (extr ...
- centos php-fpm nginx配置
移除旧的软件包:yum remove httpd* php* 安装:yum install php php-fpm yum install php-gd php-mysql php-mbstring ...
- 联想Z470安装10.11懒人版成功!!特此分享!!
折腾黑苹果也断断续续好几个月了,在远景也爬了好多贴,遇到问题基本上靠自己解决,自己组的台式机已基本完美,大学期间买的联想Z470现在是“食之无味,弃之可惜”,想想也来试试装个黑苹果玩玩,之前装过10. ...
- 如何查看hadoop与hbase的版本匹配关系
官网:http://hbase.apache.org/book.html 搜索:Hadoop version support matrix 下面有一个二维的支持关系表.
- 条款5:了解C++提供的默认函数
当我们定义一个类时,如果没有声明任何函数,那么C++编译器会默认提供4个函数:默认构造函数.复制构造函数.赋值操作符函数.析构函数,并且这些函数默认都是public且inline的.因此,当你定义如下 ...
- FPGA内部信号避免高阻态
RT,否则警告Warning: Tri-state node(s) do not directly drive top-level pin(s),会利用或门代替中间的扇出fan-out. 原因:在进行 ...
- UITableView swift
// // ViewController.swift // UILabelTest // // Created by mac on 15/6/23. // Copyright (c) 2015年 fa ...
- [网络配置相关]——ifconfig命令、ip命令、route命令
ifconfig命令 1. 查看已被激活的网卡的详细信息 # ifconfig eth0 Link encap:Ethernet HWaddr 00:30:67:F2:10:CF inet addr: ...
- 说明&总目录
1. 说明 1.1 这是一个乱七八糟的博客,包含遇到的各类问题,甚至会有奇♂怪的东西~ 1.2 作者目前本科生,懒虫一只,喜欢吃喝玩乐看动漫,更喜欢睡觉 1.3 文章难免有错,欢迎指出 1.4 语死早 ...
- C# 微信公众号
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...