文章分类 -  DUI

摘要:转自http://www.cnblogs.com/Alberl/p/3404508.html一、控件隐藏后,允许用代码操作所有行为。 在做播放器的时候,最常用的功能莫过于顺序播放、随机播放了,而当我们切换歌曲的时候,显然应该选中该歌曲,List的选中函数是SelectItem,但是调用此函数时,却发现有时候没有效果,原因是每当播放歌曲或电影时,会隐藏播放列表,这个时候SelectItem会返回false,当然,我们在SelectItem之前显示播放列表,SelectItem之后再隐藏播放列表就可以绕过这个问题,但始终不是个好办法,并且这和常规逻辑不符合,或者说和MFC的逻辑不符合,可以看到A. 阅读全文
posted @ 2013-12-25 17:56 曦花 阅读(1160) 评论(0) 推荐(0) 编辑
摘要:转自http://www.cnblogs.com/Alberl/p/3404240.html一、windows原生消息 同样,入门教程只是给出了响应windows原生消息的方法,并没给出例子,这里以自适应屏幕分辨率为例。迅雷播放器虽然可以在启动的时候自动调整窗口大小,但是当屏幕分辨率实时改变时并没有调整窗口。我们做个改进,即可以实时调整大小,很明显,应该响应WM_DISPLAYCHANGE消息,而duilib自己处理windows消息的函数是在HandleMessage里,因此重载HandleMessage函数,加入如下代码:LRESULT CDuiFrameWnd::HandleMessa. 阅读全文
posted @ 2013-12-25 14:00 曦花 阅读(381) 评论(0) 推荐(0) 编辑
摘要:现在大家应该都知道caption="0,0,0,32",是指示标题栏区了吧,如果想要整个窗口都能拖动呢? 那直接把高度改成和窗口一样不就得了~O(∩_∩)O~ 嗯,这样是可以,比如窗口高度是600,那么我们指定caption="0,0,0,600",这样整个窗口就可以拖动了,但是如果窗口大小改变了呢?假如调整窗口的大小到800,这个时候最下面的200个像素的高度就不能拖动啦,因此这里进行一个改进,也是举手之劳,在WindowImplBase::OnNcHitTest里的 RECT rcCaption = m_PaintManager.GetCaption 阅读全文
posted @ 2013-12-25 13:37 曦花 阅读(2113) 评论(0) 推荐(0) 编辑
摘要:duilib并没有提供双击和右键消息,所以需要我们自行扩展,这里以添加双击消息为例, 在UIDefine.h里,我们只看到了DUI_MSGTYPE_CLICK消息,却没有看到双击消息,因此需要在这里添加一个双击消息: #define DUI_MSGTYPE_DBCLICK (_T("dbclick")) 在UIManager.h里可以看到UIEVENT_DBLCLICK、UIEVENT_RBUTTONDOWN等消息,这是因为它的右键和双击等消息只给了内部的控件使用,这时我们需要让他传递出来,所以需要在CControlUI::DoEvent函数里传递双击消息,... 阅读全文
posted @ 2013-12-25 13:27 曦花 阅读(223) 评论(0) 推荐(0) 编辑
摘要:转自 http://www.cnblogs.com/Alberl/p/3400577.html 看到播放列表,可能有各种实现方式: 1、全部用List实现,可以看到duilib的QQDemo和GameDemo,都是全部用List实现的。不过这种方法要自己写很多很多代码,而且还要非常熟悉List,还要非常熟悉duilib。大神们不是已经写好了么,我们拿来用就行了呗。虽然大神们实现了QQDemo和GameDemo,但是可以看到那两个自己扩展的List都是不通用的,所以如果用那两个扩展List来实现这个播放列表,肯定也要做很多工作。因此也不采用这种方法。 2、全部用TreeView控件实现,这... 阅读全文
posted @ 2013-12-24 13:29 曦花 阅读(975) 评论(0) 推荐(0) 编辑
摘要:转自 http://www.cnblogs.com/Alberl/p/3398319.html上个教程讲到了按钮图片效果不对的问题,如下: 明明是迅雷里面的图片,为啥效果和迅雷不一样呢? 这是因为duilib默认会将图片缩放成和控件一样大小,这个时候我们需要在图片里加上dest属性。normalimage="file='btn_open.png' source='178,0,266,16' dest='38,13,126,29' " 其中source='178,0,266,16'代表只显示btn_open.pn 阅读全文
posted @ 2013-12-24 10:43 曦花 阅读(748) 评论(0) 推荐(0) 编辑
摘要:转自http://www.cnblogs.com/Alberl/p/3352696.html转自 http://www.cnblogs.com/Alberl/p/3379098.html这里示例将MFC按钮放到duilib滑块条控件的位置:1、准备好一个duilib控件来容纳MFC控件,代码如下:// 将带句柄HWND的控件显示到CControlUI上面class CWndUI: public CControlUI{public: CWndUI(): m_hWnd(NULL){} virtual void SetInternVisible(bool bVisible = true... 阅读全文
posted @ 2013-12-23 14:43 曦花 阅读(1189) 评论(0) 推荐(0) 编辑
摘要:转自http://www.cnblogs.com/Alberl/p/3352131.html如果用new的方式生成,则不会崩溃,所以给出一个临时的快速解决方案,即主窗口都用new生成ActiveX的Bug,即如果主窗口直接用变量生成,则关闭窗口时会产生崩溃如果用new的方式生成,则不会崩溃,所以给出一个临时的快速解决方案,即主窗口都用new生成,_tWinMain改为下面这样:int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow){ CPain... 阅读全文
posted @ 2013-12-23 10:45 曦花 阅读(440) 评论(0) 推荐(0) 编辑
摘要:是不是比duilib自带的Demo简洁明了得多呢~O(∩_∩)O~不过还没完工,因为滚动条好像不太美观~~~还记得前面介绍的Default属性吗?它不仅仅让我们少敲更多代码,而且还减少了错误的几率,提高了代码的可读性,真是一个强大的属性,那么我们的滚动条继续沿用此属性~滚动条的XML代码如下:按 Ctrl+C 复制代码 按 Ctrl+C 复制代码XML好乱,复制到XML编辑器上慢慢看吧~(*^__^*)稍微说明下:source='0,0,16,16' 相当于source='0,0,16,16',意思就是只显示图片中'0,0,16,16 阅读全文
posted @ 2013-12-23 10:22 曦花 阅读(4745) 评论(0) 推荐(0) 编辑
摘要:转自http://www.cnblogs.com/Alberl/p/3344936.html下面我们介绍一下duilib的另一种特性,那就是可以定制默认样式,这样做有什么好处呢?假如我们有10个按钮,按钮样式都一样,如果用之前介绍的方式,则需要在每个Button节点都指定图片背景、宽度、高度等信息,一旦需要改动任何一个属性,则需要在10个按钮里面都改一次,所以为了方便修改,我们可以指定一个默认样式,就算有100个按钮,我们也只需要改一次属性。方法如下:给节点添加一个Default节点即可,其中name属性填写控件的名字,value属性添加控件的属性的值,不过需要将双引号【"】换成【& 阅读全文
posted @ 2013-12-23 10:05 曦花 阅读(1003) 评论(0) 推荐(0) 编辑
摘要:转自http://www.cnblogs.com/Alberl/p/3344886.htmlCDuiString的bug在Notify处理消息时会有很多if语句,我通常喜欢把常量放在双等号前面,变量放在后面,比如: if( _T("click") == msg.sType ) { }但是却发现并没有进到这个if里,调试发现,将常量调到前面时,并没有进入到CDuiString重载的 == 函数里面,所以这里必须将常量放到后面。 if( msg.sType == _T("click") ) { }这个bug的原因是因为将常量放在前面时,并没有调用CDuiSt 阅读全文
posted @ 2013-12-23 09:57 曦花 阅读(382) 评论(0) 推荐(0) 编辑
摘要:DUiLib 源码分析 ——以UiLib 1.01版为分析目标----------------------------------------------------------------------------------分析约定:private o------- 私有的成员变量或方法protect x------- 受保护的成员变量或方法public +------- 公开的成员变量或方法----------------------------------------------------------------------------------本篇分析一下源文件UIBase.h/U 阅读全文
posted @ 2013-11-18 13:43 曦花 阅读(156) 评论(0) 推荐(0) 编辑
摘要:DUiLib 源码分析 ——以UiLib 1.01版为分析目标----------------------------------------------------------------------------------分析约定:private o------- 私有的成员变量或方法protect x------- 受保护的成员变量或方法public +------- 公开的成员变量或方法----------------------------------------------------------------------------------本篇分析一下源文件UIManager. 阅读全文
posted @ 2013-11-18 13:38 曦花 阅读(201) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示