《Visual C++入门经典》学习笔记一(Windows编程的概念)
2010-06-03 11:57
441 查看
P576
三种基本的创建交互式Windows应用程序的方法:
使用Windows API
使用MFC
使用Windows Forms
P579
几乎任何可显示的实体都是窗口,资源文件包换图标、光标之类。
Windows程序不能直接处理硬件,与外部的通信都必须通过Windows进行。
***事件驱动型程序
Windows将每个事件记录在一条消息中,并将消息放入目标程序的消息队列中。
Windows消息只不过是与某个事件有关的数据记录。
Windows专门处理这些消息的函数:WndProc()或WindowsProc()
P580
我们不必处理所有的消息,只筛选出那些程序所关心的消息。
处理这些消息,并将其余消息回传给Windows
DefWindowProc()提供默认的消息处理功能,将消息回传给Windows
***Windows API
Windows和应用程序之间传递的数据是结构而不是类,因为Windows是用C开发的。
P581
Windows类型与C++类型的对应关系表。
API函数原型使用的所有类型包含在windows.h中。
Windows程序中的符号
变量名前缀lpfn表示l:long,p:指针,fn函数
P582
Windows程序的结构
WinMain()与WindowProc()都由windows调用,没有必然联系。
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,PSTR szCmdLine, int iCmdShow)
{}
第一个参数是正在运行的程序的句柄。
句柄是标识某种对象(这里是应用程序的实例)的整数值。
...
WinMain()需要做四件事情:
1.告诉Windows该程序需要的窗口种类
2.创建程序窗口
3.初始化程序窗口
4.获取属于该程序的Windows消息
1.结构WNDCLASSEX用来包含窗口的数据。
2.RegisterClassEx()用来注册窗口,
CreateWindow()创建窗口
ShowWindow()显示窗口
3.UpdateWindow()重画窗口客户区
4.排队消息与非排队消息
P590消息循环
while(GetMessage()){}
GetMessage();//获得消息
TranslateMessage();//转换消息
DispatchMessage();//使用Windows调用WindowProc()处理
P601
MFC
1.创建Win32 Project,选择空项目。
2.项目->属性->配置属性->MFC的使用,选择:在共享DLL中使用MFC
3.新建一个C++类:FirstMFC
大气象
#include "afxwin.h"
class COurApp:public CWinApp//继续应用程序类
{
public:
virtual BOOL InitInstance();
};
class COurWnd:public CFrameWnd//继承窗体类
{
public:
COurWnd()
{
Create(0,L"Our Dumb MFC Application");
}
};
BOOL COurApp::InitInstance(void)//重写,由WinMain()调用
{
m_pMainWnd = new COurWnd;
m_pMainWnd->ShowWindow(m_nCmdShow);
return TRUE;
}
COurApp AnApplication;//在执行WinMain()之前,应用程序类必须存在
P606
Windows Forms
新建VC项目->CLR->Windows窗体应用程序
原来C++也可以像C#那样创建这种窗体应用程序。
而不仅仅像以前一样,创建MFC或者单文档,多文档。
三种基本的创建交互式Windows应用程序的方法:
使用Windows API
使用MFC
使用Windows Forms
P579
几乎任何可显示的实体都是窗口,资源文件包换图标、光标之类。
Windows程序不能直接处理硬件,与外部的通信都必须通过Windows进行。
***事件驱动型程序
Windows将每个事件记录在一条消息中,并将消息放入目标程序的消息队列中。
Windows消息只不过是与某个事件有关的数据记录。
Windows专门处理这些消息的函数:WndProc()或WindowsProc()
P580
我们不必处理所有的消息,只筛选出那些程序所关心的消息。
处理这些消息,并将其余消息回传给Windows
DefWindowProc()提供默认的消息处理功能,将消息回传给Windows
***Windows API
Windows和应用程序之间传递的数据是结构而不是类,因为Windows是用C开发的。
P581
Windows类型与C++类型的对应关系表。
API函数原型使用的所有类型包含在windows.h中。
Windows程序中的符号
变量名前缀lpfn表示l:long,p:指针,fn函数
P582
Windows程序的结构
WinMain()与WindowProc()都由windows调用,没有必然联系。
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,PSTR szCmdLine, int iCmdShow)
{}
第一个参数是正在运行的程序的句柄。
句柄是标识某种对象(这里是应用程序的实例)的整数值。
...
WinMain()需要做四件事情:
1.告诉Windows该程序需要的窗口种类
2.创建程序窗口
3.初始化程序窗口
4.获取属于该程序的Windows消息
1.结构WNDCLASSEX用来包含窗口的数据。
2.RegisterClassEx()用来注册窗口,
CreateWindow()创建窗口
ShowWindow()显示窗口
3.UpdateWindow()重画窗口客户区
4.排队消息与非排队消息
P590消息循环
while(GetMessage()){}
GetMessage();//获得消息
TranslateMessage();//转换消息
DispatchMessage();//使用Windows调用WindowProc()处理
P601
MFC
1.创建Win32 Project,选择空项目。
2.项目->属性->配置属性->MFC的使用,选择:在共享DLL中使用MFC
3.新建一个C++类:FirstMFC
大气象
#include "afxwin.h"
class COurApp:public CWinApp//继续应用程序类
{
public:
virtual BOOL InitInstance();
};
class COurWnd:public CFrameWnd//继承窗体类
{
public:
COurWnd()
{
Create(0,L"Our Dumb MFC Application");
}
};
BOOL COurApp::InitInstance(void)//重写,由WinMain()调用
{
m_pMainWnd = new COurWnd;
m_pMainWnd->ShowWindow(m_nCmdShow);
return TRUE;
}
COurApp AnApplication;//在执行WinMain()之前,应用程序类必须存在
P606
Windows Forms
新建VC项目->CLR->Windows窗体应用程序
原来C++也可以像C#那样创建这种窗体应用程序。
而不仅仅像以前一样,创建MFC或者单文档,多文档。
相关文章推荐
- 《Visual C++入门经典》学习笔记一(Windows编程的概念) (转)
- 【windows编程--进程与线程】多线程的概念
- windows编程的偏门概念: 会话(Session), 窗口站(Window Station), 桌面
- Windows编程概念及框架
- Windows网络编程基本概念
- Windows编程基础一:Windows应用的基本概念
- Windows编程,SDK.API.dll概念的详解!
- windows编程之几个坐标,坐标系的概念
- Windows多线程编程 [1] 基本概念
- 与windows编程有关的重要概念
- Windows编程-windows GDI基本概念 画笔 画刷
- 初识概念:Windows编程:VC++下的MFC与SDK区别(差别)详细阐述
- windows编程大师技巧第二版学习笔记——开发环境的搭建
- windows编程的偏门概念: 会话(Session), 窗口站(Window Station), 桌面
- Windows 编程的概念
- MFC编程--windows编程的概念
- windows编程学习笔记
- 第3章 启程——Windows编程基础. 学习笔记
- Windows编程之基础概念篇
- windows编程的一些基本概念-20121210