第1课 Windows程序内部运行机制

本文介绍了MFC和SDK在Windows编程中的应用技巧,包括如何使用StdAfx.h文件、命令行参数设置、常用头文件引入、窗口创建流程、函数指针及变量生命周期管理等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.MFC生成的C++ 源文件中都有 StdAfx.h,此文件包含了常用的AFX函数的声明,其中有 afxwin.h,此文件包含了CRECT,CPoint CWnd等许多类及其方法的声明。
2.Project->Setting->Debug 可以加入命令行参数。
3.SDK 中要加入 "windows.h"stdio.h 。因为LoadCursor,MessageBox等函数的声明在这个文件中。
4.创建一个完整的窗口的四个步骤 SDK1 设计窗口类, 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;
...
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值