duilib加消息
一.加消息
1. public INotifyUI,
2. void Notify(TNotifyUI& msg);
3. Notify实现
4. m_pManager->AddNotifier(this);
二.刷新
void CControlUI::NeedUpdate()
{
if( !IsVisible() ) return;
m_bUpdateNeeded = true;
Invalidate();
if( m_pManager != NULL ) m_pManager->NeedUpdate();
}
三.另一种加消息
1. DECLARE_MESSAGE_MAP()也就是#define DECLARE_MESSAGE_MAP() virtual bool InitMessageMap(TNotifyUI *pMsg = NULL);
2.BEGIN_MESSAGE_MAP(CTableWebPageUI)
ON_COMMAND(m_pBtnRefresh, OnBtnRefresh)
END_MESSAGE_MAP()
3. InitMessageMap();
四.
1.显示隐藏就用bool值作为参数就好。
2.CContainerUI可以 pControl =(CContainerUI*)Builder.Create(_T("XX.xml"),Add(pControl);
3.一个btn对应一个网页
4.你可以用AddPage或Add
5.网页浏览的xml不应该和别的xml搀和。如:layWebPageWithUrlBar、layLoading、layErrorPage
6.获取控件rect RECT& CControlUI::GetPos()
7.解析xml可生成CControlUI*也可强转成CContainerUI *
8.pm通常CControlUI* pControl = FindControl(pt);而控件通常CLabelUI* pLabelSpeedNum = (CLabelUI*)pAcceleratorCon->FindSubControlEx(_T("btnSpeedUpNum"));
9.有句柄的窗口通常在xml布局窗口的上面,所以可以通过xml布局获取rc,然后设置句柄窗口位置。
10.报没有可用的构造函数竟然是没包含相应的头文件。
11.SetPos和SetVisible都要设置句柄窗口的位置,防止在隐藏位置发生变化,显示时位置不对。
12.vc助手下面一个框选择类,再选择方法,定位代码非常方便。
13.可以把常用的搜索位置如:skin放到搜索框中。
独立进程
1.CDll管理dll。加载,释放。
duilib加消息的更多相关文章
- duilib进阶教程 -- 扩展duilib的消息 (11)
duilib并没有提供双击和右键消息,所以需要我们自行扩展,这里以添加双击消息为例, 在UIDefine.h里,我们只看到了DUI_MSGTYPE_CLICK消息,却没有看到双击消息,因此需要在这里添 ...
- 2013 duilib入门简明教程 -- 事件处理和消息响应 (17)
界面的显示方面就都讲完啦,下面来介绍下控件的响应. 前面的教程只讲了按钮和Tab的响应,即在Notify函数里处理.其实duilib还提供了另外一种响应的方法,即消息映射DUI_BEG ...
- Duilib学习笔记《05》— 消息响应处理
在Duilib学习笔记<04>中已经知道了如何将窗体显示出来,而如何处理窗体上的事件.消息呢? 一. 系统消息 窗体显示的时候我们就已经说了,窗体是继承CWindowWnd类的,对于窗体的 ...
- duilib教程之duilib入门简明教程17.事件处理和消息响应
界面的显示方面就都讲完啦,下面来介绍下控件的响应. 前面的教程只讲了按钮和Tab的响应,即在Notify函数里处理.其实duilib还提供了另外一种响应的方法,即消息映射DUI_BEGIN_ME ...
- Duilib源码分析(六)整体流程
在<Duilib源码分析(一)整体框架>.<Duilib源码分析(二)控件构造器—CDialogBuilder>以及<Duilib源码分析(三)XML解析器—CMarku ...
- duilib进阶教程 -- 总结 (17)
整个教程的代码下载:http://download.csdn.net/detail/qq316293804/6502207 (由于duilib进阶教程主要介绍界面,所以这个教程只给出界面相关的代码,完 ...
- 使用DUILIB建立项目
使用DUILIB加载XML界面 这篇主要目的就是教给大家怎样在自己的工程中加载XML界面,这是最基本的应用,对于界面控件响应啥的,我就不讲了,在大家懂了这个之后,我会给大家一个其它人写的博客,再看他的 ...
- 2013 duilib入门简明教程 -- 响应按钮事件(4)
上一个Hello World的教程里有一句代码是这样的:CControlUI *pWnd = new CButtonUI; 也就是说,其实那整块绿色背景区域都是按钮的区域.(这里简要介 ...
- 2013 duilib入门简明教程 -- 自绘标题栏(5)
如果大家有做过标题栏的自绘,肯定会感慨各种不容易,并且现有的一些资料虽然完美的实现了功能,但是代码比较乱,需要自行整理.如果用duilib,就是小case啦. duilib其实并没有区 ...
随机推荐
- Android开发参考资料
Android入门第九篇之AlertDialog: http://blog.csdn.net/hellogv/article/details/5955959 Android的AlertDialog详解 ...
- CROSS JOIN
原文:CROSS JOIN 最近在讲到T-SQL查询的Join部分时,一下子没有想起来CROSS JOIN的用法,因为其实平常也确实基本不用到.特意找了一个例子,以供参考 CROSS JOIN又称为笛 ...
- Qt 跨UI线程的数据交换和信号-槽调用实现方案汇总
一.目录 转载1: http://my.oschina.NET/fanhuazi/blog/737224?ref=myread 点击打开链接 转载2: http://www.qtcn.org/bbs/ ...
- Delphi的Anymouse方法探秘
匿名函数是用Interface来实现的,具体细节可以看http://www.raysoftware.cn/?p=38匿名函数还是非常方便的.比如自己封装的异步调用.Async(procedure(AP ...
- 为什么需要使用Git客户端?(使用msysgit)
Git 是 Linux Torvalds 为了帮助管理 Linux® 内核开发而开发的一个开放源码的版本控制软件.正如所提供的文档中说的一样,“Git 是一个快速.可扩展的分布式版本控制系统,它具有极 ...
- <iOS小技巧> 昵称格式判断
一.使用方式 + 如下代码块功能:判断字体,判断字体输入格式 NSString *firstStr = [name substringToIndex:1]; NSArray *num ...
- 利用GitLab自动同步软件仓库
利用GitLab自动同步GitHub.Gitee.Bitbucket软件仓库 我在码云的账号:userName密码:password项目地址:https://gitee.com/Bytom/bytom ...
- Scala 学习之路(八)—— 类和对象
一.初识类和对象 Scala的类与Java的类具有非常多的相似性,示例如下: // 1. 在scala中,类不需要用public声明,所有的类都具有公共的可见性 class Person { // 2 ...
- C#反射使用时注意BindingFlags的用法
c#反射查找方法时,默认只能查到public方法.如果想要查找private方法,需要设定BindingFlags. 即: BindingFlags.Public|BindingFlags.Insta ...
- 18 | 眼前一亮:带你玩转GUI自动化的测试报告