060719 MFC

下面来源于www.sunxin.org
第1课 Windows程序运行原理及程序编写流程
 
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)
{
case WM_CHAR:
break;
...
}
}
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值