`
wsql
  • 浏览: 11791834 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

C++ windows程序结构

 
阅读更多

一个简单的Windows程序主要包括应用程序主函数WinMain函数和消息处理函数,WinMain函数的主要工作是定义窗口、注册窗口、显示窗口、消息循环;消息处理函数的主要工作是处理干兴趣的消息。下面的示例程序显示了一个简单的窗口程序的结构。

例、一个简单的Windows程序。

在Visual C++开发环境下,创建一个空的Win32Application工程,添加如下代码

#include <windows.h>
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);// 申明窗口函数
int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdline,
					 int nCmdShow)//Windows程序的入口为WinMain函数
{
	WNDCLASS wndclass;//定义窗口类的结构变量
	HWND hwnd;//定义窗口句柄
	MSG msg;//定义消息结构变量
	wndclass.style=CS_HREDRAW|CS_VREDRAW;//改变窗口大小这重绘
	wndclass.lpfnWndProc=WndProc;//窗口函数为WndProc
	wndclass.cbClsExtra=0;//窗口类无扩展
	wndclass.cbWndExtra=0;//窗口实例无扩展
	wndclass.hInstance=hInstance;//注册窗口实例句柄
	wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION);
	wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);//用箭头光标
	wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);//背景为白色
	wndclass.lpszMenuName=NULL;//窗口默认无菜单
	//窗口类名为windows窗口创建
	wndclass.lpszClassName=TEXT("windows窗体创建");
	/*注册窗口类*/
	if(!RegisterClass(&wndclass))return false;
	/*创建窗体*/
	hwnd=CreateWindow(TEXT("windows窗体创建"),//窗口类名windows窗体创建
		TEXT("windows窗体创建"),//窗口名windows窗体创建
		WS_OVERLAPPEDWINDOW,//重叠式窗口
		CW_USEDEFAULT,CW_USEDEFAULT,//左上角屏幕坐标默认值
		CW_USEDEFAULT,CW_USEDEFAULT,//窗口大小默认值
		NULL,//无父窗口
		NULL,//无子窗体
		hInstance,//创建值窗体实例句柄
		NULL//值窗体无创建参数
		);
	/*显示并更新窗口*/
	ShowWindow(hwnd,nCmdShow);
	UpdateWindow(hwnd);
	/*消息循环*/
	while (GetMessage(&msg,NULL,0,0))
	{
		TranslateMessage(&msg);//键盘消息转换
		DispatchMessage(&msg);//发送消息给窗口函数
	}
	return msg.wParam;//返回推出值
}
/*窗口函数*/
LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lparam)//参数:句柄,消息,消息参数,消息参数
{
	/*根据消息值转相应的消息处理*/
	switch (message)
	{ 
	case WM_PAINT://重绘窗口客户区消息处理
		HDC hdc;//定义设备描述表句柄
		PAINTSTRUCT ps;//定义绘图星系结构变量
		hdc=BeginPaint(hwnd,&ps);//获取要重绘的窗口的设备描述表句柄
		TextOut(hdc,10,20,TEXT("Hello World!"),strlen("Hello World!"));//输出文本
		EndPaint(hwnd,&ps);//结束要重绘的窗口
		return 0;
	case WM_DESTROY://撤销窗口消息处理
		PostQuitMessage(0);//产生退出程序消息WM_QUIT
		return 0;

	}
	return DefWindowProc(hwnd,message,wParam,lparam);//其他消息交给有系统提供的缺省处理函数
}

运行结果:


分享到:
评论

相关推荐

    visual c++ 开发windows应用程序实例

    前言 第一章Visual C++简介 ...第六章 使用Windows标准控件 第七章 使用ActiveX控件 第八章 文档/视结构 第九章 图形设备接口 第十章 MFC通用类 第十一章 异常处理和诊断 第十二章 多线程 第十三章 动态链接库

    清华大学C++程序设计讲稿及源程序

    继承与派生 第8章 多态性 第9章 群体类和群体数据的组织 第10章 泛型程序设计与C++标准模板库 第11章 流类库与输入/输出 第12章 异常处理 第13章 MFC库与WINDOWS程序开发概述

    新一代 Visual C++ 2005程序设计pat3

    全书共19章,前3章简单回顾了C++语言的重点并介绍MFC库中与窗口无关的一些基础类,接下来逐章讲述窗口程序设计的基本概念、窗口类CWnd、Windows控件、键盘及鼠标的相关用法、控制菜单的方法、MFC文档/视图结构、绘图及...

    新一代 Visual C++ 2005程序设计pat5

    全书共19章,前3章简单回顾了C++语言的重点并介绍MFC库中与窗口无关的一些基础类,接下来逐章讲述窗口程序设计的基本概念、窗口类CWnd、Windows控件、键盘及鼠标的相关用法、控制菜单的方法、MFC文档/视图结构、绘图及...

    C++程序设计.doc

    上机5 含有类的静态成员与类的友元的C++程序的结构设计 一、实验目的 1.理解类的静态成员解决共享问题的机制; 2.掌握类的静态数据成员与静态函数成员的实现方法; 3.理解利用友元关系实现数据共享的机制,掌握类...

    c++语言程序设计(第三版)

    目录 第1章 概述 1.1计算机程序设计语言的发展 1.2 面向对象的方法 1.3 面向对象的软件开发 1.4 信息的表示与存储 1.5 程序的开发过程 ...13.3 使用VisualC++开发Windows程序的步骤 13.4 小结 习题 参考文献

    Visual C++ 2005程序设计(pdf版)-4

    本书详细描述了使用Visual C++2005与MFC开发Windows窗体应用程序的方法,通过循序渐进的教学模式,一步步教读者构建功能复杂的Win32应用程序。. 全书共19章,前3章简单回顾了C+十语言的重点并介绍MFC库中与...

    C++语言程序设计习题与实验指导

    第十三章:MFC库与Windows程序开发概述 第二部分:实验指导 实验1:Visual C++ 6.0开发环境应用入门(2学时) 实验2:C++简单程序设计(4学时) 实验3:函数的应用(2学时) 实验4:类与对象(4学时) 实验5:...

    Visual C++ 2005程序设计(pdf版)-5

    本书详细描述了使用Visual C++2005与MFC开发Windows窗体应用程序的方法,通过循序渐进的教学模式,一步步教读者构建功能复杂的Win32应用程序。. 全书共19章,前3章简单回顾了C+十语言的重点并介绍MFC库中与...

    Visual C++ 2005程序设计(pdf版)-6

    本书详细描述了使用Visual C++2005与MFC开发Windows窗体应用程序的方法,通过循序渐进的教学模式,一步步教读者构建功能复杂的Win32应用程序。. 全书共19章,前3章简单回顾了C+十语言的重点并介绍MFC库中与...

    Visual C++2008程序设计完全自学教程

    第2章 基本的C++结构 第3章 流程控制 第4章 数组和字符串 第5章 特殊类型变量——指针 第6章 函数提高程序模块化 第7章 预处理器和宏 第8章 自定义数据类型 第9章 对象和类 第10章 构造函数和类成员 第11...

    Visual C++ 2005程序设计(pdf版)-3

    本书详细描述了使用Visual C++2005与MFC开发Windows窗体应用程序的方法,通过循序渐进的教学模式,一步步教读者构建功能复杂的Win32应用程序。. 全书共19章,前3章简单回顾了C+十语言的重点并介绍MFC库中与...

    数据结构期末大作业,地铁路线图查询-使用C++实现广州地铁换乘路线查询,并使用C++的windowsAPI制作了图像化界面

    这是我在数据结构课上的期末大作业,使用C++实现了查找广州地铁换乘路线的程序,同时使用C++内置的windows API,实现了WINDOWS GUI图形界面。 下载仓库文件之后,可以点击exe文件直接运行程序。假如出现运行失败的...

    学生成绩管理系统-C/C++-数据结构-课程设计

    开发环境:VS + C++ + Windows 注:只能在windwos环境编译,使用了windows的库文件,如果要Linux版本,请替换代码中windows相关头文件...程序的所有部分进行了模块化,并添加了详细的注释,结构清晰,适合初学者学习。

    Visual C++ 2005程序设计(pdf版)-8

    本书详细描述了使用Visual C++2005与MFC开发Windows窗体应用程序的方法,通过循序渐进的教学模式,一步步教读者构建功能复杂的Win32应用程序。. 全书共19章,前3章简单回顾了C+十语言的重点并介绍MFC库中与...

    77G 22套C语言 C++ 数据结构 程序设计视频课程合集 C丨C++相关学习视频全套视频教程

    C++ 编程思想 第1卷 1.对象导言.mp4 10.友元.mp4 11.句柄类.mp4 12.初始化与清除_1.mp4 13.初始化与清除_2.mp4 14.函数重载.mp4 15.联合.mp4 16.默认参数.mp4 17.默认参数还是函数重载.mp4 18.常量_1....

    用C++编写的windows操作系统的多线程同步程序

    在掌握基于消息的windows程序结构和多线程程序设计方法的基础上,设计一个多线程同步的程序。使学生能够从程序设计的角度了解多线程程序设计的方法和在windows系统下多线程同步互斥的机制。 2、实验内容 理解Windows...

    c++mfc程序开发

    MFC(Microsoft fundation class) Visual C++的微软Windows程序设计基础类库 编程工具 2011-8-14 15 基本Windows操作系统和程序设计简介 MFC基础类库和程序结构剖析东南大学授课用课件

    windows 程序设计

    一旦您了解使用一个Windows程序的方法,您就非常容易学习其它的Windows程序。菜单和对话框允许用户试验一个新程序并探究它的功能。大多数Windows程序同时具有键盘接口和鼠标接口。虽然Windows程序的大多数功能可通过...

    正宗《Visual C++2008入门经典》中文 高清完整版PDF part5(共6部分)

    第13章 使用MFC编写Windows程序 第14章 处理菜单和工具栏 第15章 在窗口中绘图 第16章 创建文档和改进视图 第17章 使用对话框和控件 第18章 存储和打印文档 第19章 编写自己的DLL 第20章 连接到数据源 第21章...

Global site tag (gtag.js) - Google Analytics