当前位置: 首页 > news >正文

默认网站预览能能显示建设中网站链接维护怎么做

默认网站预览能能显示建设中,网站链接维护怎么做,网站服务器 2核,企业培训考试系统我是荔园微风#xff0c;作为一名在IT界整整25年的老兵#xff0c;今天说说Windows程序的运行机制。经常被问到MFC到底是一个什么技术#xff0c;为了解释这个我之前还写过帖子#xff0c;但是很多人还是不理解。其实这没什么#xff0c;我在学生时代也被这个问题困绕过。…我是荔园微风作为一名在IT界整整25年的老兵今天说说Windows程序的运行机制。经常被问到MFC到底是一个什么技术为了解释这个我之前还写过帖子但是很多人还是不理解。其实这没什么我在学生时代也被这个问题困绕过。而且那个时间学习资料没有那么丰富网上也没有什么资料周围也没有懂的人那个时候理解MFC更困难。甚至在我看来理解这个比理解人工神经网络更难。我认为造成这种现象的根本原因就是没有搞清楚Windows程序的运行机制因为不理解Windows程序的运行机制所以给理解MFC带来了很大的困难。我决定带所有微软开发技术的初学者一起攻破这个问题但是一篇文章肯定是讲不清楚的我们要分好几章来说。需要你有足够的耐心一起来吧。我们这次来搞清楚什么是Windows程序的消息。消息难道是你朝街对面的人喊一声就叫消息这个概念让很多人产生严重误解。在上世纪末本世纪初我还在用C99写程序的时候当调用fopen函数打开文件这个库函数最终调用操作系统提供的函数来打开文件。在Windows中用户程序可以调用系统的API函数系统也会调用用户程序这个调用是通过消息来进行的。与基于DOS的应用程序不同Windows的应用程序是事件(消息)驱动的。Windows的程序不会显式地调用函数来获取输入而是等待windows操作系统向它们传递输入。所以说Windows程序设计是一种完全不同于传统的DOS方式的程序设计方法。它是一种事件驱动方式的程序设计模式主要是基于消息的。例如当用户在窗口中画图的时候按下鼠标左键此时操作系统会感知到这一事件于是将这个事件包装成一个消息放入到应用程序的消息队列中然后应用程序从消息队列中取出消息并进行响应也就是响应这个鼠标的操作。在这个处理过程中操作系统也会给应用程序“发送消息”实际上是操作系统调用程序中一个专门负责处理消息的函数这个函数称为窗口过程。Windows系统把应用程序的输入事件传递给各个窗口每个窗口有一个函数称为窗口消息处理函数。窗口消息处理函数处理各种用户输入处理完成后再将控制权交还给系统。窗口消息处理函数一般是在注册一个窗口的时候指定的。你可以从典型的SDK程序中窗口消息处理函数是怎么声明和实现的。在 Windows程序中消息是由MSG结构体来表示的。MSG结构体的定义如下:typedef struct tagMSG{HWND hwnd;UINT message;WPARAM wParam;LPARAM lParam;DWORD time;POINT pt; }MSG;该结构体中各成员变量的含义如下第一个成员变量hwnd表示消息所属的窗口。在windows上通常开发的程序都是窗口应用程序一个消息一般都是与某个窗口相关联的。例如在某个活动窗口中按下鼠标左键产生的按键消息就是发给该窗口的。在Windows程序中用HWND类型的变量来标识窗口。如果对HWND不明白马上看我的另一篇文章真正理解微软Windows程序运行机制——什么是句柄第二个成员变量 message指定了消息的标识符。在Windows中消息是由一个数值来表示的不同的消息对应不同的数值。但是由于数值不便于记忆所以Windows将消息对应的数值定义为“WM_名称”的宏的形式其中的名称对应某种消息的英文拼写的大写形式。例如鼠标左键按下消息是WM_LBUTTONDOWN,键盘按下消息是WM_KEYDOWN字符消息是WM_CHAR等。在程序中我们通常都是以这种宏的形式来使用消息的。如果想知道“WM_名称”消息对应的具体数值可以在 Visual Studio 2022的代码编辑窗口中选中“WM_名称”,然后单击鼠标右键在弹出菜单中选择“转到定义”,即可看到该宏的具体定义。跟踪或查看某个变量的定义都可以使用这个方法。第三个和第四个成员变量wParam和IParam,这两个变量我当年学了很久很久才搞清楚是什么意思。其实这两个变量就是用于指定消息的附加信息。例如当我们收到一个字符消息的时候message成员变量的值就是WM_CHAR,但用户到底输入的是什么字符那么就由wParam和IParam来说明。wParam、IParam表示的信息随消息的不同而不同。如果想知道这两个成员变量具体表示的信息可以在MSDN中关于某个具体消息的说明文档查看到。读者可以在Visual Studio 2022的开发环境中通过“转到定义”查看一下WPARAM和 LPARAM这两种类型的定义,可以发现这两种类型实际上就是unsigned int和 long。第五个和第六个变量time和pt分别表示消息投递到消息队列中的时间和鼠标的当前位置。每一个Windows应用程序在开始执行后,系统都会为该程序创建一个消息队列,这个消息队列用来存放该程序创建的窗口的消息。例如当我们按下鼠标左键的时候将会产生WM_LBUTTONDOWN消息系统会将这个消息放到窗口所属的应用程序的消息队列中等待应用程序的处理。Windows将产生的消息依次放到消息队列中而应用程序则通过一个消息循环不断地从消息队列中取出消息并进行响应。这种消息机制就是Windows程序运行的机制。Windows程序中的消息可以分为“进队消息”和“不进队消息”。进队的消息将由系统放入应用程序的消息队列中由应用程序取出并发送。不进队的消息在系统调用窗口过程时直接发送给窗口。不管是进队消息还是不进队消息最终都由系统调用窗口过程函数对消息进行处理。Windows通过消息的形式向窗口传递用户输入。消息可以由系统和应用程序生成。该系统会为每个输入事件产生相应的消息用户点击鼠标、移动鼠标或滚动条或是应用程序改变了系统的某些属性比如说系统更改了字体资源改变了某个窗口的大小。应用程序可以生成消息通告发送消息指定它的窗体去执行某些任务或者是与其他的应用程序交互。windows系统将消息发送到一个窗口消息处理函数时传递四个参数窗口句柄消息标识符两个DWORD值(消息参数)。窗口句柄标识了该消息的目的窗口。Windows使用它来确定是哪个窗口的的窗口消息处理函数收到该消息。一个消息标识符是一个有名字的常量用来表明消息的意义。当一个窗口处理函数收到一条消息它根据判断消息标识符来决定如何处理该消息例如消息标识符WM_PAINT消息告诉窗口程序窗口的客户区已发生变化必须重绘。 消息参数(DWORD值)指定传递的数据或是数据的地址。消息参数可以是一个整型值一个指针值。也可以为NULL。一个窗口过程必须根据消息标识符来确定如何解释消息参数。windows 消息类型主要分为系统定义的消息和应用程序定义的消息。系统定义的消息是指操作系统向应用程序发送消息来和应用程序通讯。操作系统通过消息控制应用程序的运行向应用程序传递用户输入以及一些其他有用的信息。应用程序也可以发送系统定义的消息应用程序通过这些消息去控制使用注册窗口类创建的控件的窗口的运行。每个系统定义的消息都有一个唯一的消息标识符和相应的符号常量。符号常量通常会表明系统定义的消息所属的类别。不同的前缀表明不同的类别。应用程序定义的消息是指应用程序可以通过创建自定义的消息用来和自己的窗口和其他进程通讯。如果应用程序创建了自己的消息窗口处理函数可以解析这些信息并作出相应的处理。windows使用两种方法将消息派发到一个窗口消息处理函数一是将消息放到消息队列(先进先出队列)二是不放到消息队列直接发送到窗口消息处理函数让窗口处理函数来处理消息。派发到消息队列的消息被称为排队消息。它们主要是用户输入事件比如说鼠标或键盘消息盘有WM_MOUSEMOVE消息WM_LBUTTONDOWNWM_KEYDOWN和WM_CHAR消息。还有一些其他的包括WM_TIMERWM_PAINT以及WM_QUIT。大多数其他的消息息这是直接发送到窗口过程被称为非队列消息(non queued messages)。各位小伙伴这次我们就说到这里下次我们再深入研究windows程序运行机制。作者简介荔园微风1981年生高级工程师浙大工学硕士软件工程项目主管做过程序员、软件设计师、系统架构师早期的Windows程序员Visual Studio忠实用户C/C使用者是一位在计算机界学习、拼搏、奋斗了25年的老将经历了UNIX时代、桌面WIN32时代、Web应用时代、云计算时代、手机安卓时代、大数据时代、ICT时代、AI深度学习时代、智能机器时代我不知道未来还会有什么时代只记得这一路走来充满着艰辛与收获愿同大家一起走下去充满希望的走下去。
http://www.hkea.cn/news/14416158/

相关文章:

  • 公司网站制作计入什么科目背景wordpress
  • 一个ip上绑多个网站怎么让网站分享有图片
  • 机关单位不得建设网站做违法网站会怎么样
  • 招投标网站建设开发重庆医院网站建设
  • 网站聊天工具代码莱芜论坛的最新帖子
  • 网站设计师接单西安网站建设 乐云seo
  • 漳州专业网站建设费用做好网站
  • 常州网站建设价位wordpress赞
  • 建设一个网站的基本成本无锡网站建设 首选无锡立威云商
  • 上海浦东做网站公司同一个服务器的网站做友情链接
  • 什么网站做任务的q币网站页面制作多少钱
  • 百度网站排名全掉通辽做网站建设
  • 微网站微名片网站制度建设
  • 做业务在那几个网站上找客户端毕业设计做网站做不出
  • php+ajax网站开发典型实例 pdf页面推广策略有哪些
  • 南通市交通建设处网站苏州建网站收费
  • 做网站项目主要技术南京文化云网站建设
  • 工信部isp申请网站北京 网站开发
  • 上海网站建设q479185700強晋中网站开发
  • 偷的网站怎么做seo办公oa系统排行
  • 免费网站友情链接5元域名免备案
  • 淘宝网站是谁做的好网站建设基础百度百科
  • 建娱乐网站浏览器下载免费安装
  • swf做网站头生产管理erp系统哪家的好
  • 长春 房地产网站建设专业网站建设哪家效果好
  • 小学网站asp最近的重大新闻
  • 设计个人网站模板wordpress怎么验证谷歌
  • wordpress在php下安装教程视频seo点击
  • 北京西站出站口个体营业执照可以做网站嘛
  • 广东住房建设厅网站大庆建设局网站