对DirectUI的初步理解-创新互联

这个基本的封装控件类,基于WinCE的,所以他的入口自然是int APIENTRY WinMain,首先是Creat,创建窗口,封装的类包括

瓜州ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:13518219792(备注:SSL证书合作)期待与您的合作!

   1、SubClass  子类化窗口

   2、ShowModal  窗口模态化

   3、CPaintManagerUI  绘制管理者 这个类中封装了很多UI的函数,比如GetClientSize,获取工作区域的宽和高,MessageHandler写了很多消息响应函数,对鼠标的操作, 等于自己重写了几乎所有的消息响应,另外很对地方用到了CControlUI

   4、CControlUI  控件类

 等等控件在原来MFC的基础上封装了,使用起来更加方便。

 如何使用呢,我们需要建一个WinCE工程,比如建立一个像360一样的页面,我们写好XML文件后,接下来就是如何去解析了,我们需要通过Create函数建立窗口,而在这个函数中我们要将写好的XML文件解析出来

tString tstrSkin = CPaintManagerUI::GetSkinPath() + _T("skin.xml");
  CControlUI* pRoot = builder.Create(tstrSkin.c_str(), (UINT)0, &cb, &m_pm);
  ASSERT(pRoot && _T("Failed to parse XML"));

这样就可以了,然后通过消息函数响应WM_CREATE、WM_CLOSE、WM_DESTROY、WM_NCPAINT、WM_GETMINMAXINFO(重载最小化函数)、WM_SIZE(窗口变化函数)、WM_SYSCOMMAND、WM_NCACTIVATE、WM_NCCALCSIZE、WM_NCHITTEST,这些函数可以帮助我们解析XML上的控件,实现消息的对应。

  而在底层封装的一些消息,我们通过 msg.sType == _T("click")的方式与之匹配,以下是封装的消息

 1、“click” 属于CButtonUI类,Activate()函数,实现判断按钮是否活跃,如活跃则发送通知

 2、“selectchanged” 属于COptionUI类,Activate()函数,若复选框处于选中状态,激活并发送通知

 3、“link” 属于CTextUI,Event()函数,若鼠标弹起,发送link通知

 4、“valuechanged” 属于CSliderUI,Event()函数,点击滑块弹起,发送通知

 5、“textchanged”属于CEditUI,SetText()函数,设置文本时发送通知

 6、“itemselect”属于CComboUI(组合控件),SelectItem()函数中响应WM_KEYDOWM,发送通知

 7、“itemselect”又属于ClistUI(列表控件),SelectItem()函数中,发送通知

 8、“Headclick”属于CListUI(列表控件),Event()函数中,鼠标按在列表头的位置,发送通知

 9、“itemactivate”属于CListElementUI(列表元素),Activate()函数中,双击时发送通知

 10、“itemclick”属于CListLabelElementUI,Event()函数,单击某一片区域,发送通知

 11、“windowinit”属于CPaintManageUI,WM_PAINT消息中,第一次绘制时发送通知

 12、“setfocus”和“Killfocus”,属于CPaintManageUI,获取焦点和失去焦点

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。

当前文章:对DirectUI的初步理解-创新互联
浏览地址:https://www.cdcxhl.com/article8/dojgip.html

成都网站建设公司_创新互联,为您提供网站制作品牌网站设计响应式网站网站收录域名注册服务器托管

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都网站建设