windows应用程序的界面是由什么和控件组成的

windows应用程序的界面是由什么和控件组成的,第1张

windows应用程序的界面是由由标题栏、菜单栏、工具栏、工作区、状态栏等和控件组成的。还有windows 窗体应用程序是由控件组成的,控件是可以重复使用的类或组件

MessageBoxButtons枚举值及其说明

成员名称 说明

MessageBoxButtons.AbortRetryIgore 消息框包含“终止”,“重试”,“忽略”按钮

MessageBoxButtons.OK 消息框包含“确定”按钮

MessageBoxButtons.OKCancel 消息框包含“确定”和“取消”按钮

MessageBoxButtons.RetryCancel 消息框包含“重试”和“取消”按钮

MessageBoxButtons.YesNo 消息框包含“是”或“否”按钮

窗口就是屏幕上的一块区域,在这块区域中,应用程序取得用户的输入,显示程序的输出。每个GUI应用程序至少要创建一个窗口,称为主窗口,它作为用户与应用程序间的主界面来提供服务。大多数应用程序也直接或者间接地创建其他窗口,来完成与主窗口相关的工作。每个窗口都在显示输出和从用户取得输入方面起着一定的作用。

窗口客户区是应用程序显示输出的部分。应用程序必须提供一个称为窗口函数的回调函数来处理窗口的输入,向客户区显示输出。

GUI应用程序的入口地址是WinMain,这是一个自定义的回调函数。

Windows的消息驱动:

创建窗口之后,就要对窗口的行为负责。是 *** 作系统告诉程序用户在窗口上的动作的。Windows不断向应用程序发送消息,通知发生了什么事情。比如用户改变了窗口大小,Windows就向这个程序发送一个消息,指明窗口新的大小。

当Windows向程序发送消息时,它调用程序中的一个函数,这个函数的参数精确地描述了Windows发送的消息。在程序中这个函数为窗口函数(Window Procedure)或消息处理函数。它是一个自定义的回调函数。SendMessage函数用于向窗口发送消息,直到目标窗口函数处理完这个消息才返回。

系统向应用程序发送消息的过程:

系统为应用程序传递所有的输入到它的各个窗口,每个窗口都关联一个窗口函数,每当这个窗口有输入时,系统调用该函数。窗口函数处理输入,然后再将控制权交给系统。

无限的消息循环:

在调用UpdateWindow函数之后,整个窗口已经显示在桌面上,程序必须准备从用户接收键盘和鼠标输入了。Windows为每个线程维护了一个消息队列,每当有一个输入发生,Windows就把用户的输入翻译成消息放在消息队列中。利用GetMessage函数可以从调用线程的消息队列中取出一个消息来填充MSG结构。如果消息队列中没有消息(即没有用户输入),这个函数会一直等待下去,直到有消息进入到消息队列为止。GetMessage函数从消息队列中取得的消息如果不是WM_QUIT,则返回非零值。一个WM_QUIT消息会促使GetMessage函数返回0,从而结束消息循环。

DispatchMessage函数分发一个消息到对应窗口的窗口函数,当它返回时,消息循环从调用GetMessage函数开始进入下一轮循环。

通常Windows程序设计者用一个switch和case结构来决定消息处理函数收到了什么消息,以及如何处理这个消息。所有消息处理函数不处理的消息都必须传给一个名为DefWindowProc的函数让Windows做默认处理,从DefWindowProc函数返回的值也必须从消息处理函数返回。否则Windows就失去了与应用程序通信的途径,也就不能再控制窗口的行为了。

WM_PAINT消息通知应用程序窗口客户区有一块或者全部变成无效,必须刷新。这意味着窗口客户区的内容必须被重画。对BeginPaint函数的调用将使整个客户区有效,然后返回设备环境句柄,在窗口的客户区显示图形和文字时需要使用这个设备环境句柄。EndPaint函数负责释放设备环境句柄,使它变得不再能用。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7818602.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-10
下一篇2023-04-10

发表评论

登录后才能评论

评论列表(0条)

    保存