窗口与控制器模块接口设计及消息处理机制.pdfVIP

窗口与控制器模块接口设计及消息处理机制.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

内容:

WndMgr模块和Controller模块.

WndMgr模块:负责窗口的管理;窗口的消息传递OnEvent,鼠标形状改变附属物改变,和

Controller模块的沟通PostMessage.

Controller模块:和服务器打交道,然后分派消息,玩家控制角色的处理,包括行走,等.

WndMgr窗口控制:

⚫IWndMgr一些主要接口:

void*CreateWnd(UINTuWndID)该方先通过Desktop窗口查找该窗口有没有存在,如果

存在,直接返回这个窗口指针.如果没有存在,就会创建一个新的窗口,并执行窗口的Create()

方法.不同的模块的窗口由该窗口自行创建.创建完后,返回该窗口的指针.因此可以通过窗

口ID获取到对应窗口的指针.

BOOLShowWnd(UINTuWndID,intnCmdShow)设置某个窗口是否显示.显隐窗口的统一

接口方法(当然你也可以取到窗口指针,直接调用窗口的SetVisible方法).为了统一,尽量都

用这个方法来显隐窗口,当然个别窗口特殊情况除外.在改方法里,有一系列的处理,首先会

调用CreateWnd来获取窗口指针,如果是要显示的,会根据窗口在屏幕的位置进行调整,不

让窗口显示在屏幕外.然后通过OnEvent发送一个WE_CW_ALLWND_SHOW消息(当然是

已经了该消息的才会发送).发完后就调用SetVisible方法设置显隐了.

voidRegTellShowWnd(UINTuWndID)某个窗口,在打开或关闭时,要收到

WE_CW_ALLWND_SHOW消息.该方把信息保存起来(数组方式保存),通过

ShowWnd方法显隐的窗口,如果窗口了该消息,便会通过OnEvent方法发送该消息,

ram为1代表显示,0为隐藏.

BOOLOnEvent(UINTuWndID,UINTuEventID,RAMram,LPARAMlParam)外部给

窗口发消息的函数.要使该方法能够发消息给对应的窗口,窗口必须实现

IWndEnableCall(非拉伸窗口)或IWndEnableCall4(可拉伸窗口)接口.

XMainWnd接口XGeneralMainWnd

IWndEnableCallEx

+OnEvent():bool

接口接口

IWndEnableCallIWndEnableCall4

voidSetCursorAttach(IBitmap*pBitmap,ICursorData*pData)更换鼠标图标,给鼠标加上附属

数据.

ICursorData*GetCursorAttachData()获取鼠标上的附属数据.

voidSetFlashCursorAttach(intnCursorType,ICursorData*pData,BOOLbIsSquare=TRUE,int

nFrameWidth=0)根据鼠标类型设置鼠标,并给鼠标加上附属数据,支持闪烁.

⚫WndMgr和其他模块的通信:

主要靠下面三个方法

SubscibeMessage(uWndID,UINTuEventID,WMMESSAGE_CONNECTION*pConnect)

UnSubscibeMessage(uWndID,UINTuEventID,WMMESSAGE_CONNECTION*pConnect)

PostWindowMessage(UINTuWndID,UINTuEventID,RAMram,LPARAMlParam)

⚫WndMgr和Controller模块的通信原理:

Controller通过WndMgr的OnEvent方法发消息给WndMgr模块;

WndMgr通过PostWindowMessage方法,发

文档评论(0)

guchengyong + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档