WINDOWS程序设计(002)----HELLOWIN程序(源代码及详细解析) WINDOWS程序原理

创建一个窗口,显示一行文本,并播放一段音频.

效果图:


音频文件的名称应为: “hellowin.wav”,放在和执行文件同目录下.

测试音频下载链接:https://pan.baidu.com/s/1qYj1yA4

源代码:

Windows函数调用:

HELLOWIN程序所调用的Windows函数:

函数 简短描述
LoadIcon 加载图标,以供程序使用
LoadCursor 加载鼠标光标,以供程序使用
GetStockObject 获取一个图形对象.在本例中是一个用来对窗口的背景进行重绘的画刷
RegisterClass 为应用程序的窗口注册一个窗口类
MessageBox 显示消息框
CreateWindow 基于窗口类创建一个窗口
ShowWindow 在屏幕中显示窗口
UpdateWindow 指示窗口对其自身进行重绘
GetMessage 从消息队列获取消息
TranslateMessage 翻译一些键盘消息
DispatchMessage 将消息发送给窗口过程
PlaySound 播放声音文件
BeginPaint 表明窗口客户区的尺寸
DrawText 显示一个文本字符串
EndPaint 借宿窗口绘制
PostQuitMessage 将”退出”消息插入消息队列
DefWindowProc 执行默认的消息处理

大写标识符

HELLOWIN.c中使用了大量的大写标识符.雅思报名费用这些标志符都是早Windows头文件中定义的.这些标志符有很多都是以两三或三个字母作为前缀,且其后紧跟一个下划线:

这些标识符其实都是数值常量.前缀表明该常量所属的一般类别,如下表所示.

前缀 常量
CS 类窗口风格
CW 创建窗口选项
DT 文本绘制选项
IDI 图标的ID号
IDC 光标的ID号
MB 消息框选项
SND 声音选项
WM 窗口消息
WS 窗口风格

匈牙利标记法

前缀 数据类型
c char 或 WCHAR 或 TCHAR
by BYTE (无符号字符)
n short (短整形)
i int (整形)
x , y int , 表示 x 坐标 或者 y 坐标
cx , cy int , 表示 x 或 y 的长度, c 表示 “count”(计数)
B 或 f BOOL ( int ) , f 表示”flag”
w WORD (无符号短整形)
l LONG (长整型)
dw DWORD (无符号长整型)
fn 函数
s 字符串
sz 以零结束的字符串
h 句柄
p 指针

参考书籍:《WINDOWS程序设计 第五版 珍藏版》

原文地址:https://www.cnblogs.com/zhanglixina/p/9614476.html

时间: 2024-10-10 20:29:01

WINDOWS程序设计(002)----HELLOWIN程序(源代码及详细解析) WINDOWS程序原理的相关文章

Windows程序设计笔记1:第2章:win32程序运行原理

第2章:win32程序运行原理 内核对象:对象句柄,标示符,进程相关的,只能被1个进程里面的其他线程访问,不透明的,封装过的. 创建进程:返回STARTUPINFO类型的变量对象,包含了父进程传递给子进程的显示信息,   STARTUPINFO是一种类类型,和内含的类型是一样的, STARTUPINFO si={sizeof(&si)}; //初始化startupinfo的大小 ::GetStartupinfo(&si); //调用startupinfo对象 创建进程:CreateProc

菜鸟详细解析Cookie注入原理

一.SQL注入原理 我以aspx为例,现在我们来研究下Cookie注入是怎么产生的,在获取URL参数的时候,如果在代码中写成Request["id"],这样的写法问题就出现了.我先普及下科普知识,在aspx中Request.QueryString["id"]用于接收get提交的数据,Request.Form["id"]用于接收post提交的数据.如果不指定使用QueryString还是Form接收数据,WEB服务是怎样读取数据的呢,他是先取GET

WINDOWS程序设计(003)----窗口类的注册

应该结合(002)中的程序例子好好地理解,有十分大的帮助. 链接:WINDOWS程序设计(002)--HELLOWIN程序(源代码及详细解析) WINDOWS程序原理 1.WNDCLASS类型结构的定义 在WinMain中,我们通常用如下形式定义一个WNDCLASS类型的结构.(定义方式参考后面的附表) 然后对该结构的10个字段进行初始化,并调用RegisterClass函数. 在WNDCLASS结构中,两个最重要的字段是第二个字段和最后一个字段. 第二个字段(lpfnWndProc)是用于基于

葛军视频教程《windows程序设计》配套文章_1.1 从最经典的“hello world”C语言程序说起

第一章 编写第一个Windows应用程序 1.1 从最经典的"hello world"C语言程序说起 本文视频教程地址: 优酷网(超清):http://v.youku.com/v_show/id_XNjkwMjgwNzE2.html 土豆网(超清.原画):http://www.tudou.com/programs/view/NV1scXZCbJ8/ 备受全世界程序员青睐的一本书是<The C Programming Language>(中文名<C语言程序设计>)

关于《Windows程序设计(第五版)》中一个实例程序的疑问

最近一直在看Charlse Petzold的<Windows程序设计>,作为一个新得不能再新的新手,只能先照着书的抄抄源码了,之前的例子一直都很正常,但昨天遇到一个很诡异的BUG. 先看实例源码吧: 1 /*----------------------------------------------------------------- 2 ENVIRON.C -- Environment List Box 3 (c) Charles Petzold,1998 4 Copy by XXXX,2

Windows程序设计画图实现哆啦A梦

在看雪论坛上看到的一个帖子,很喜欢,转载一下.原文地址:http://bbs.pediy.com/showthread.php?t=138630哆啦A梦是画出来的,不知道作者算这些坐标位置算了多久,真的很犀利.记得原来看<Windows程序设计>的时候,每次看到GDI都不是很理解,也没有仔细去研究.现在编程也很少与GDI打交道,还是等以后有空了在深入了解一下吧.把这个代码转载一份到博客,以后再回头研究一下.顺便贴一下程序运行后的截图:(很酷吧~~~)字数补丁~代码疯子~程序人生~字数补丁~代码

Windows程序设计笔记4:第10章:TCP/IP和网络通信

WinSock接口:Windows处理网络的API 套接字socket 流套接字:SOCKET_STREAM           可靠连接   TCP HTTP POP3 数据报套接字:SOCKET_DGRAM     不可靠连接 UDP 寻址方式: 1:sockaddr的第1个版本 struct sockaddr{ u_short  sa_family;       //地址家族 char      sa_data[14];   //数据 } 2.sockaddr的TCP/IP版本的 sock

《windows程序设计》第一章,建议想学API的每天看一章

开始 壹佰软件开发小组  整理编译   本书介绍了在Microsoft Windows 98.Microsoft Windows NT 4.0和Windows NT 5.0下程序写作的方法.这些程序用C语言编写并使用原始的Windows Application Programming Interface(API).如在本章稍后所讨论的,这不是写作Windows程序的唯一方法.然而,无论最终您使用什么方式写作程序,了解Windows API都是非常重要的. 正如您可能知道的,Windows 98已

Windows 程序设计 复习笔记(共 77 问)

Windows 程序设计 复习笔记(共 77 问) (个人整理,仅做复习用 :D,转载注明出处:http://blog.csdn.net/hcbbt/article/details/42706501) 知识点 双字节字符集和Unicode字符集有何区别?采用双字节字符集有何问题 双字节字符集(DBCS)编码是0-255,DBCS含有1字节代码与2字节代码,而Unicode是统一的16位系统,这样就允许表示 65536个字符.Unicode中的每个字符都是16位宽而不是8位宽.在Unicode中,