一.加消息

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加消息的更多相关文章

  1. duilib进阶教程 -- 扩展duilib的消息 (11)

    duilib并没有提供双击和右键消息,所以需要我们自行扩展,这里以添加双击消息为例, 在UIDefine.h里,我们只看到了DUI_MSGTYPE_CLICK消息,却没有看到双击消息,因此需要在这里添 ...

  2. 2013 duilib入门简明教程 -- 事件处理和消息响应 (17)

        界面的显示方面就都讲完啦,下面来介绍下控件的响应.     前面的教程只讲了按钮和Tab的响应,即在Notify函数里处理.其实duilib还提供了另外一种响应的方法,即消息映射DUI_BEG ...

  3. Duilib学习笔记《05》— 消息响应处理

    在Duilib学习笔记<04>中已经知道了如何将窗体显示出来,而如何处理窗体上的事件.消息呢? 一. 系统消息 窗体显示的时候我们就已经说了,窗体是继承CWindowWnd类的,对于窗体的 ...

  4. duilib教程之duilib入门简明教程17.事件处理和消息响应

    界面的显示方面就都讲完啦,下面来介绍下控件的响应.    前面的教程只讲了按钮和Tab的响应,即在Notify函数里处理.其实duilib还提供了另外一种响应的方法,即消息映射DUI_BEGIN_ME ...

  5. Duilib源码分析(六)整体流程

    在<Duilib源码分析(一)整体框架>.<Duilib源码分析(二)控件构造器—CDialogBuilder>以及<Duilib源码分析(三)XML解析器—CMarku ...

  6. duilib进阶教程 -- 总结 (17)

    整个教程的代码下载:http://download.csdn.net/detail/qq316293804/6502207 (由于duilib进阶教程主要介绍界面,所以这个教程只给出界面相关的代码,完 ...

  7. 使用DUILIB建立项目

    使用DUILIB加载XML界面 这篇主要目的就是教给大家怎样在自己的工程中加载XML界面,这是最基本的应用,对于界面控件响应啥的,我就不讲了,在大家懂了这个之后,我会给大家一个其它人写的博客,再看他的 ...

  8. 2013 duilib入门简明教程 -- 响应按钮事件(4)

        上一个Hello World的教程里有一句代码是这样的:CControlUI *pWnd = new CButtonUI;     也就是说,其实那整块绿色背景区域都是按钮的区域.(这里简要介 ...

  9. 2013 duilib入门简明教程 -- 自绘标题栏(5)

        如果大家有做过标题栏的自绘,肯定会感慨各种不容易,并且现有的一些资料虽然完美的实现了功能,但是代码比较乱,需要自行整理.如果用duilib,就是小case啦.     duilib其实并没有区 ...

随机推荐

  1. RedHat 7.3+ORACLE 12c RAC 使用udev绑定磁盘

    在RedHat 7中,很多命令发生了改变,其中使用udev对磁盘绑定的命令也发生了变更,不再使用start_udev,而是改为了udevadm,下面具体介绍如何使用udev对磁盘进行绑定,这里对6和7 ...

  2. 阿里Android开发手册正式版一览

    新年伊始,春意盎然之际,阿里巴巴在2月28日再度为工程师们送上了一份重磅开春好礼:<阿里巴巴Android开发手册>. 该手册长达66页,是阿里巴巴集团各大 Android 开发团队的集体 ...

  3. seq2seq和Transformer

    简单而言,seq2seq由两个RNN组成,一个是编码器(encoder),一个是解码器(decoder).以MT为例,将源语言"我爱中国"译为"I love China& ...

  4. qt 维护x86和arm两套编译环境

    1.中间库: 中间库都放在middlewares目录,include头文件相同,所以不需要特殊处理,只要特殊处理lib安装目录, 示例pro文件如下: TEMPLATE = lib TARGET = ...

  5. return Json对象时序列化错误

    当要序列化的表与另一个表是一对多的关系是,表1序列化时会找到另一个表2关联的字段,会将另一个表2进行序列化,然后表2中也有一个字段与表1关联,这样序列化就会产生循环序列化. 在网上进行搜索,其中大多数 ...

  6. 如何在 cmd 命令行中查看、修改、删除与添加环境变量

    Windows 和 linux 区别 一.查看所有环境变量的名称和值:Linux下:exportWindows下:set二.根据名称查该环境变量的值:Linux下:echo $环境变量名比如:echo ...

  7. linux下安装Nginx1.16.0

    因为最近在倒腾linux,想安装新版本的nginx,找了一圈教程没有找到对应的教程,在稍微倒腾了一会之后终于成功的安装了最新版. 服务器环境为centos,接下来是详细步骤: 安装必要依赖插件 yum ...

  8. select下拉箭头样式重置

    select{ appearance:none; -moz-appearance:none; -webkit-appearance:none; background: url("../ima ...

  9. 在 Angular 2 Component 中使用第三方 JS 库

    本文所有内容以 Angular 2 Quick Start 项目为基础,使用 TypeScript 语言. 如上图,最近遇到一个需求,需要在一个刚启动的 Angular 2 项目中使用 snap.sv ...

  10. 【Idea】JUnit单元测试%MODULE_WORKING_DIR%' does not exist

    Idea执行单元测试时报错:上午9:35 Error running 'MobileMessageImplTest.java': Cannot start process, the working d ...