- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1
API和SDK
API
SDK
消息与消息队列
消息队列
WinMain函数
窗口的创建
1.设计一个窗口类WndClass()
窗口的特征是由wndclass函数来定义的
使用时,先定义一个结构体变量:WNDCLASS wndclass
wndclass.style=,,,,,,
wndclass.lpfnWndProc=,,,,,
,,,,,,,
style里面的常用样式,使用时,写成style=CS_HEADRAW,等等,在书上P7.
2.注册窗口类RegisterClass()
3.创建窗口CreateWindow()
在创建窗口之前,必须要先为窗口注册(registerclass(窗口类对象的地址))
dwStyle 可以指定为WS_OVERLAPPEDWINDOW这个类型,这是一个包含多个窗口类型的组合。
4.显示更新窗口Show/UpdateWindow
编写的消息循环代码:
其中:
5.Windows消息处理机制
6.peekmessag()
7.发送消息
8.MassageBox()
MessageBox显示一个模态对话框,其中包含一个系统图标、 一组按钮和一个简短的特定于应用程序消息,如状态或错误的信息。消息框中返回一个整数值,该值指示用户单击了哪个按钮。
函数原型:int?WINAPI?MessageBox(HWND?hWnd,LPCTSTR?lpText,LPCTSTR?lpCaption,UINT?uType);
hWnd:
此参数代表消息框拥有的窗口。如果为NULL,则 消息框没有拥有窗口。
lpText:
消息框的内容。
lpCaption:
消息框的标题。
uType:
指定一个决定对话框的内容和行为的位标志集。此参数可以为下列标志组中标志的组合。指定下列标志中的一个来显示消息框中的按钮以及图标
按钮参数:
含义
MB_OK
默认值。有一个确认按钮在里面。
MB_YESNO
有是和否在里面。
MB_ABORTRETRYIGNORE
有Abort(放弃),Retry(重试)和Ignore(跳过)
MB_YESNOCANCEL
消息框含有三个按钮:Yes,No和Cancel
MB_RETRYCANCEL
有Retry(重试)和Cancel(取消)
MB_OKCANCEL
消息框含有两个按钮:OK和Cancel
MB_ICONEXCLAMATION
一个惊叹号出现在 消息框
MB_ICONWARNING
一个惊叹号出现在 消息框
MB_ICONINFORMATION
一个圆圈中小写字母i组成的图标出现在 消息框
MB_ICONASTERISK
一个圆圈中小写字母i组成的图标出现在 消息框
MB_ICONQUESTION
一个问题标记图标出现在 消息框
MB_ICONSTOP
一个停止消息图标出现在 消息框
MB_ICONERROR
一个停止消息图标出现在 消息框
MB_ICONHAND
一个停止消息图标出现在 消息框
返回值:
ID
选择了……
IDOK(1)
OK
IDCANCEL(2)
CANCEL
IDABORT(3)
ABORT
IDRETRY(4)
RETRY
IDIGNORE(5)
IGNORE
IDYES(6)
YES
IDNO(7)
NO
9.窗口过程函数
过程:首先操作系统检测到应用程序的窗口消息,将消息传送到消息队列中,应用程序不断循环调用getmessage(),来取出消息队列中的消息,并且translate(产生新消息)(例如:将消息WM_KEYDOWN和KEY_KEYUP转换成一条WM_CHAR,这里面有附加参数wPARAM,包含了字符的ASCII码)和dispatch,传送给操作系统,然后操作系统调用过程函数对消息进行处理。
过程函数:有四个参数
注意:如果过程函数最后没有DefIndowProc()这一步,那么进程会一直存在,要关掉进程。
10.变量LRESULT和CALLBACK
11.BeginPaint()
函数原型:HDC BeginPaint(
HWND hwnd, // [输入]被重绘的 窗口句柄
LPPAINTSTRUCT lpPaint // :[输出]指向一个用来接收绘画信息的 PAINTSTRUCT结构
);
如果函数成功,返回值是指定窗口的“显示设备描述表”句柄。
如果函数失败,返回值是NULL,表明没有得到显示设备的内容。
备注:
BeginPaint函数自动设置显示设备内容的剪切区域,而排除任何更新区域外的区域。该更新区域可以通过InvalidateRect或InvalidateRgn函数设置,也可以是系统在改变大小、移动、创建、滚动后设置的,
原创力文档


文档评论(0)