《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

大气象
#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或者单文档,多文档。

posted @ 2010-06-03 11:57  大气象  阅读(1522)  评论(3编辑  收藏  举报
http://www.tianqiweiqi.com