win32 实验一熟悉了解最基本构成的Windows窗口应用程序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

专业课程实验报告

课程名称: Windows程序设计

开课学期: 2015 至 2016 学年第 1 学期专业:网络工程年级班级: 2013

学生姓名:学号:

实验教师:刘红俊

计算机与信息科学学院软件学院

实验内容

程序源码:

#include

#include

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

int WINAPI WinMain(//入口函数: WINAPI调用约定 __stdcall的#define

HINSTANCE hInstance, //当前实例句柄

HINSTANCE hPrevInstance, //上一实例句柄为了和Win 3.1兼容,在Win32的程序中此参数无用,总是NULL

LPSTR lpCmdLine,// 向字符串的指针,用来保存运行程序时的命令行参数

int nCmdShow// 指定程序开始的时候如何显示

)

//-------------------初始化窗口类--------------------

{

WNDCLASSEX wcex;

/*

typedef struct tagWNDCLASSA

{

UNIT style;

WNDPROC lpfnWndProc;

int cbClsExtra;

int cbWndExtra;

HINSTANCE hInstance;

HICON hIcon;

HCURSOR hCursor;

HBRUSH hbrBackground;

LPCSTR lpszMenuName;

LPCSTR lpszClassName;

}

WNDCLASSA,* PWNDCLASSA, NEAR * NPWNDCLASSA, FAR * LPWNDCLASSA;

*/

HWND hWnd;

MSG msg;

TCHAR szWindowClass[] = L"显示窗口";

TCHAR szTitle[] = L"My Windows";

wcex.cbSize = sizeof(WNDCLASSEX);//窗口类的大小

wcex.style = 0;//定义窗口类型

wcex.lpfnWndProc = WndProc;//定义窗口的消息处理函数为WndProc

wcex.cbClsExtra = 0;//类预留空间,0为不预留

wcex.cbWndExtra = 0;//实例预留空间,0为不预留

/*cbClsExtra 和 cbWndExtra 可以存放额外信息

类型都为int 主要用于存储数据大小用法:

int nClsExtra = 100; //数据大小

cosnt TCHAR pcszClassName[] = _T("ClassName");

WNDCLASSEX* pClsExtra = (WNDCLASSEX*)new char[sizeof(WNDCLASSEX) + nClsExtra];

memset(pClsExtra, 0, sizeof(WNDCLASSEX) + nClsExtra);

char* pClsData = (char*)pClsExtra + sizeof(WNDCLASSEX);

// 这里,pClsData就可以保存额外的100字节数据,*/

wcex.hInstance = hInstance;//实例句柄

wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_APPLICATION));//窗口图标wcex.hCursor = LoadCursor(NULL, IDC_ARROW);//鼠标光标形状

wcex.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);//设置窗口背景颜色

wcex.lpszMenuName = NULL;//设置窗口菜单,由于此例程不使用菜单所以设置为NULL

wcex.lpszClassName = szWindowClass;//定义窗口类的名称 TCHAR szWindowClass[] = L"显示窗口"

wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_APPLICATION));

//设置窗口小图标为默认图标 win4.0

//--------------注册窗口------------------

//使用RegisterClass()函数注册窗口类

if (!RegisterClassEx(&wcex)){

MessageBox(NULL, _T("创建窗口失败!"), _T("窗口注册"), NULL);

return 1;

}

//---------------创建窗口----------------

//使用CreateWindow()函数来完成

hWnd = CreateWindow(

szWindowClass,//窗口类的名称

szTitle,//窗口的标题

WS_OVERLAPPEDWINDOW,//窗口的风格

CW_USEDEFAULT, CW_USEDEFAULT,//窗口的坐标X,Y

CW_USEDEFAULT, CW_USEDEFAULT,//窗口的宽度、高度

NULL,//父窗口句柄

NULL,//窗口的菜单句柄

hInstance,//窗口的句柄

NULL//参数指针

);

if (!hWnd){

MessageBox(NULL, L"创建窗口失败", _T("创建窗口"), NULL);

return 1;

}

ShowWindow(hWnd, nCmdShow);/*创建完成窗口后Windows并没有将其显示到显示器上,只是在内存中保存了这个窗口的全部信息,

要显示这个窗口,需要使用 ShowWindow(hwnd,iCmdShow) 函数.

相关文档
最新文档