《Visual C++入门经典》学习笔记一(Windows编程的概念)
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
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或者单文档,多文档。
我这个博客废弃不用了,今天想寻找外链的时候,突然想到这个博客权重很高。
有需要免费外链的,留言即可,我准备把这个博客变成免费的友情链接站点。