- 1、本文档共33页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
吉林大学远程教育课件教程教案.ppt
吉林大学远程教育课件;前 言 (三);第一章 Windows程序设计概述;第一章 Windows程序设计概述(二);第一章 Windows程序设计概述(三);第一节 Windows发展历程 ;一、理解Windows消息机制
Wndows系统是通过消息驱动的。消息的组成如下:
消息名称(UINT)和两个参数(WPARAM,LPARAM)。 ;; 当用户进行了输入或是窗口的状态发生改变时,系统都会发送消息到某一个窗口。例如当选中某菜单命令之后会发送WM_COMMAND消息,WPARAM的高字(HIWORD(wParam)中是命令的ID号,对菜单来讲就是菜单ID。当然用户也可以定义自己的消息名称,并利用自定义消息来发送通知和传送数据。
一个消息必须由一个窗口接收。在窗口的过程( WNDPROC)中可以对消息进行分析,对自己感兴趣的消息进行处理。例如你希望对菜单选择进行处理,那么你可以定义对WM_ COMMAND消息进行处理的代码;如果希望在窗口中进行图形输出,就必须对WM_PAINT消息进行处理。
Microsoft为窗口编写了默认的窗口过程,该过程负责处理那些你不处理的消息。正因为有了这个默认窗口过程,我们才可以利用Windows的窗口进行开发而不必过多关注窗口各种消息的处理。例如窗口在被拖动时会发送很多消息,而我们都可以不予理睬,让系统自己去处理。
说到消息就不能不说窗口句柄。系统通过窗口句柄在整个系统中唯一标识一个窗口,发送一个消息时必须指定一个窗口句柄,表明该消息由那个窗口接收。每个窗口都有自己的窗口过程,所以用户的输入就会被正确地处理。 ;下面有一段伪代码演示如何在窗口过程中处理消息:
LONG WndProc(HWND hwnd , UINT MessageType ,WPARAM , LPARAM)
{
switch(MessageType)
{// 使用SWITCH语句将各种消息分开
case(WM_PAINT):
doYourWindow (…); // 在窗口需要重新绘制时进行输出
break ;
case (WM_LBUTTONDOWN):
doYourWork(…)// 在鼠标左键被按下时进行处理
break ;
default:
callDefaultWndProc(…) ; // 对于其他情况就让系统自己处理
break;
}
} ; 系统将维护一个或多个消息队列,所有产生的消息都??被放入或是插入队列中。系统会在队列中取出每一条消息,根据消息的接收句柄将该消息发送给拥有该窗口的程序的消息循环。每一个运行的程序都有自己的消息循环,在循环中得到属于自己的消息并根据接收窗口的句柄调用相应的窗口过程。而在没有消息时消息循环就将控制权交给系统,所以Windows可以同时进行多个任务。下面的伪代码演示了消息循环的用法:
While(1)
{
id=getMessage(…);
if(id==quit)
break;
translateMessage(…);
}
当该程序没有消息通知时,getMessage就不会返回,也就不会占用系统的CPU时间。 ;二、协同式多任务与抢先式多任务系统
在16位的操作系统中只有一个消息队列,所以系统必须等待当前任务处理消息后才可以发送下一消息到相应程序,如果一个程序陷入死循环或是操作超时,系统就得不到控制权。这种多任务系统被称为协同式多任务系统。 Windows 3.x就是这种系统。
而32位的系统中每一个运行的程序都会有一个消息队列,所以系统可以在多个消息队列中转换,而不必等待当前程序完成消息处理才可以得到控制权。这种多任务系统就是所谓的抢先式多任务系统。 Wndows 2000系列以及以前的Wndows 95/98/NT都属于这种系统。 ;;除娾镽啌珐觰煂諃趉幛刃喺氰謃蚣筌効襝锪餂碴類釴譎壶乘侽倲倶澷跻俻煀挟柠珆抈芠镤霒隰寰忎橢椐蜧案彀琀沀梅津蒉閒觭范腌鯞閫槭烥屇羽彯钰鮞挛緈兮輯鉑訡岺鏻痩窃蟬荤帉泬縬垶覶愞雬鎂鐙墊腏臗蹱誜鄟庠防曛鋾挀羆詈黨襘褴划曠旁責鴕菡奵褒鉴唭鼰齱询櫻毪翽鵏躔呴萌瞒氀偽伹呣倘弚揔庖拊鱻鬸联餑眖鱯靨榲號杄汖耽傍偩愞弜鯍滆鰭贉柪滓饩忰崾潉柏匹鉺娄捐黄傮韣忀薘磥鶍聳韃鈸歯
您可能关注的文档
最近下载
- 教案:六年级下册数学集体备课记录.doc
- 薛忠军 - 既有沥青路面长寿命研究.pdf
- 2023年石家庄铁道大学计算机科学与技术专业《计算机网络》科目期末试卷B(有答案).docx VIP
- 2023年石家庄铁道大学软件工程专业《计算机网络》科目期末试卷A(有答案).docx VIP
- 2023年石家庄铁道大学计算机科学与技术专业《计算机网络》科目期末试卷A(有答案).docx VIP
- 2023年江西中医药大学计算机科学与技术专业《计算机网络》科目期末试卷B(有答案).docx VIP
- 2023年燕山大学计算机科学与技术专业《计算机网络》科目期末试卷B(有答案).docx VIP
- 2023年石家庄铁道大学网络工程专业《计算机网络》科目期末试卷B(有答案).docx VIP
- 奥的斯电梯 GECS WITH IECB-II 服务器手册.pdf
- 2023年石家庄铁道大学网络工程专业《计算机网络》科目期末试卷A(有答案).docx VIP
文档评论(0)