[原创]VC视频教程笔记!
第一课
1.MFC生成的C++源文件中都有StdAfx.h,此文件包含了常用的AFX函数的声明,其中有afxwin.h,此文件包含了CRECT,CPoint,CWnd等许多类及其方法的声明.
2.Project->Setting->Debug可以加入命令行参数.
3.在SDK中要加入"windows.h"和stdio.h.因为LoadCursor,MessageBox等函数的声明在这个文件中.
4.创建一个完整的窗口的四个步骤SDK,1设计窗口类,2注册窗口类,3创建窗口,4显示窗口
5.函数名可以代表函数代码的首地址,即可作为函数指针.
6.要查看VC数据类型,可以在MSDN中输入"BOOL"然后选择"DATA TYPE".
7.atof将字符串转化为float,atoi将字符串转化为int型.
8.所有从CWnd类派生的类都有m_hWnd句柄.
9.变量的生命周期:可以认为出了包含它的大括号,这个变量的生命周期结束.所以全局变量的声明位于所有大括号之外.但是用new声明的变量和用static声明的变量除外.
10.SDK示范程序,见下面.
11.sprintf格式化字符,其头文件为stdio.h,在MFC中格式化字符用CString.Format
12.GetDC()与ReleaseDC()要成对使用,否则会内存泄漏.同样,BeginPaint()与EndPaint().
13.GetStockObject()得到画笔,画刷,字体,调色板的句柄,使用时必须用类型转换.
14.什么时候用NULL,什么时候用0.答,对指针赋值时用NULL,对变量赋值时用0.
15.什么是野指针 答:将指针指向的变量的内存释放后,此指针即变成野指针!如何避免野指针 答:将此指针指向NULL即可.p=NULL;
16.SDK代码流程:
#include "windows.h"//包含头文件LoadCursor,TextOut等函数
#include "stdio.h"//包含sprintf,printf等函数
LRESULT CALLBACK MyProc(...);//声明回调函数
int WINAPI WinMain()
{
WNDCLASS wndcls;//设计窗口类
wndcls.hcursor=LoadCursor();//初始化
....
RegisterClass(&wndcls);//注册窗口类
hwnd=CreateWindow(...);//创建窗口
ShowWindow(..);//显示窗口
UpdateWindow(..);
MSG msg;//定义消息结构体
while(GetMessage(...))//消息循环
{
...
}
return 0;
}
LRESULT CALLBACK MyProc(...)//实现回调函数
{
switch(uMsg)
下一页