日期:2014-05-17  浏览次数:20814 次

Windows API与MFC创建简单窗口对比分析

Windows API创建窗口.

 

先手动创建一个project,不要用向导生成的代码,全部自己写代码.步骤如下

new一个Win32 Project.向导全部保持默认值,点Finish.项目名字为MyWin32APIForm.

打开MyWin32APIForm.cpp,把里面代码全部删除.然后写上如下代码.

#include "stdafx.h"

#include "MyWin32APIForm.h"

/*函数MyProc是用来处理各种消息事件,比如点击鼠标,关闭窗口*/

LRESULT WINAPI MyProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)

{

   switch (message)

{

 case WM_DESTROY:

          PostQuitMessage(0);break;  /*关闭窗口时退出程序,为了例子简单,这里不处理其他message了.不然可以有很多个case条件*/

 default:

         return DefWindowProc(hWnd, message, wParam, lParam); /*由windows默认的函数来处理信息.*/

}

 return 0;

}

 

/*这是main函数,程序执行的入口点.有四个参数.hInstance是应用程序的句柄,hPrevInstance在以前16的系统中有用,现在32位或64位windows系统中没啥

//用处了.如果用windows start 的Run命令启动应用程序,lpCmdLiney就是传入的相关信息.nCmdShow是窗口显示样式.*/

int  APIENTRY _tWinMain(HINSTANCE hInstance,  HINSTANCE hPrevInstance,

                                          LPTSTR    lpCmdLine,              int       nCmdShow)

{

/*(1).使用windows API的一个结构体,并初始化它.其实就相当于实例化一个窗体类,并初始化.只不过以前C中还没有类的概念,用结构体来表示一个窗体.*/

     static LPCTSTR szWindowClass = L"Arwen";  //窗体类的名字

 WNDCLASSEX windowClass;

windowClass.cbSize          = sizeof(WNDCLASSEX);  //结构体占用内存大小

windowClass.style = CS_HREDRAW | CS_VREDRAW;   //