1.使用DirectUIBuilder.exe软件新建一个皮肤skin文件,记录下你需要交互的控件的name属性,将在我们的mfc程序中通过name属性进行调用;

2.新建一个mfc工程,放入我们的UI皮肤文件,注意摆放位置,因为在程序中,我们将通过相对位置获取UI皮肤文件:

同时摆放DirectUI程序需要的库文件,同样注意摆放,程序使用相对路径获取:

include文件夹

Lib文件夹

3.打开mfc程序的stdafx.h文件(本例项目名称:Demo1),添加对DirectUI的引用:

......#ifndef _AFX_NO_AFXCMN_SUPPORT
#include <afxcmn.h>                     // MFC 对 Windows 公共控件的支持
#endif // _AFX_NO_AFXCMN_SUPPORT#include "../include/DirectUIInc.h" //添加引用DirectUI

打开Demo1.h文件,添加对DirectUI资源的使用声明:

......class CDemo1App : public CWinApp
{
public:CDemo1App();// 重写
public:virtual BOOL InitInstance();IDUIRes* m_pDUIRes;//声明DirectUI资源的使用.....

打开Demo1.cpp文件,添加对DirecrUI的资源的获取:

......BOOL CDemo1App::InitInstance()
{// 如果一个运行在 Windows XP 上的应用程序清单指定要// 使用 ComCtl32.dll 版本 6 或更高版本来启用可视化方式,//则需要 InitCommonControlsEx()。否则,将无法创建窗口。INITCOMMONCONTROLSEX InitCtrls;InitCtrls.dwSize = sizeof(InitCtrls);// 将它设置为包括所有要在应用程序中使用的// 公共控件类。InitCtrls.dwICC = ICC_WIN95_CLASSES;InitCommonControlsEx(&InitCtrls);CWinApp::InitInstance();m_pDUIRes = OpenSkin(_T("../Skin/WebDesktop.dui"),_T("../Skin/Default.skn"));//获取DirectUI皮肤资源......

打开Demo1Dlg.h文件,声明我们需要操作DirectUI的皮肤对象:

......
public:afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);afx_msg LRESULT OnDUILButtonUp(WPARAM wparam, LPARAM lparam);//DirectUI的左键弹起事件private:IDirectUI* m_pDirectUI;//皮肤控件IDUIHwndObj*  m_hWndNet;//皮肤控件
......

打开Demo1Dlg.cpp文件,完成我们对DirectUI对象的操作逻辑:

......
BEGIN_MESSAGE_MAP(CDemo1Dlg, CDialog)ON_WM_SYSCOMMAND()ON_WM_PAINT()ON_WM_QUERYDRAGICON()//}}AFX_MSG_MAPON_WM_CREATE()ON_MESSAGE(DUISM_LBUTTONUP, OnDUILButtonUp)    //声明我们的鼠标左键弹起事件处理函数,有别于系统的左键弹起事件
END_MESSAGE_MAP()
......
int CDemo1Dlg::OnCreate(LPCREATESTRUCT lpCreateStruct)
{if (CDialog::OnCreate(lpCreateStruct) == -1)return -1;// TODO:  在此添加您专用的创建代码m_pDirectUI = (IDirectUI*)theApp.m_pDUIRes->CreateDirectUI(_T("Main"), (long)HandleToLong(GetSafeHwnd()));ASSERT(m_pDirectUI);m_hWndNet = (IDUIHwndObj*)m_pDirectUI->GetObjectByCaption(DUIOBJTYPE_PLUGIN,_T("HwndObjNet"),TRUE);ASSERT(m_hWndNet);return 0;
}LRESULT CDemo1Dlg::OnDUILButtonUp(WPARAM wParam, LPARAM lParam)
{IDUIControlBase* pControl = (IDUIControlBase*)wParam;if(pControl == NULL){ return 0; }return 0;
}
......

DirectUI学习笔记(1)相关推荐

  1. Chrome学习笔记(二):UI组件,皮肤引擎

    原创文章,转载请注明:转载自Soul Apogee 本文链接地址:Chrome学习笔记(二):UI组件,皮肤引擎 -- 基础设施篇 Chrome的UI是很奇妙的,因为看起来能很好的跨平台,而且可以很好 ...

  2. duilib学习笔记

    前段时间对皮肤引擎比较感兴趣,于是在VS第一人称快的无法直视的dot大神推荐下,看了一个小巧又好用的皮肤引擎:duilib. 1. duilib简介 duilib是一个开源的DirectUI界面库,简 ...

  3. PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 call

    您的位置 首页 PyTorch 学习笔记系列 PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 发布: 2017年8月4日 7,195阅读 ...

  4. 容器云原生DevOps学习笔记——第三期:从零搭建CI/CD系统标准化交付流程

    暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...

  5. 容器云原生DevOps学习笔记——第二期:如何快速高质量的应用容器化迁移

    暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...

  6. 2020年Yann Lecun深度学习笔记(下)

    2020年Yann Lecun深度学习笔记(下)

  7. 2020年Yann Lecun深度学习笔记(上)

    2020年Yann Lecun深度学习笔记(上)

  8. 知识图谱学习笔记(1)

    知识图谱学习笔记第一部分,包含RDF介绍,以及Jena RDF API使用 知识图谱的基石:RDF RDF(Resource Description Framework),即资源描述框架,其本质是一个 ...

  9. 计算机基础知识第十讲,计算机文化基础(第十讲)学习笔记

    计算机文化基础(第十讲)学习笔记 采样和量化PictureElement Pixel(像素)(链接: 采样的实质就是要用多少点(这个点我们叫像素)来描述一张图像,比如,一幅420x570的图像,就表示 ...

最新文章

  1. python使用作为转义字符_当需要在字符串中使用特殊字符时, Python使用()作为转义字符。...
  2. mysql 每条记录大小_计算数据库中各个表的数据量和每行记录所占用空间
  3. 推荐一个好用的Chrome扩展应用,管理新建标签页面的
  4. JavaScript新发展 CoffeeScript Dart Rust Node.js
  5. oracle进程内存不足1046552,ora-04030 进程内存不足解决方案
  6. python redis 消息队列_Python的Flask框架应用调用Redis队列数据的方法
  7. 长期豪赌人工智能,Alphabet是怎样一步一步偷偷改变世界的?
  8. vba monthview控件64位_VBA学习
  9. mysql5.7.20 sql mode_MySQL5.7中的sql_mode默认值带来的坑及解决方法
  10. Tomcat的日志配置
  11. 效果降临日历2009
  12. Let's encrypt 通配域名(二级, 三级)
  13. ORA-12505, TNS:listener does not currently know of SID given in connect descript
  14. Android系统简介
  15. Final Cut pro快捷键大全
  16. 有听力测试题的英语听力软件,英语听力软件哪个好?这几款最靠谱!
  17. 少了五毛钱不卖的酷炫火焰特效!3D粒子哦!
  18. 基于ROS节点实现USB camera在web显示
  19. matlab如何求解sbm模型,非期望产出的SBM模型代码问题
  20. linux qt按键精灵,按键精灵QT抢夺脚本源码

热门文章

  1. Windows系统自带工具介绍
  2. win7(主机)+win7虚拟机(vmware,被调试机)+windbg配置内核驱动调试
  3. hypot函数、fmod函数
  4. 利用mininet模拟SDN架构并进行DDoS攻击与防御模拟(Ryu+mininet+sflow+postman)
  5. 计算机教室规则英语,有没有关于教室规则 的英文
  6. 导出公众号历史文章,批量下载微信公众号数据分析
  7. Windows系统文件类型大全
  8. 网上教学系统mysql课程设计_基于学生信息管理系统的数据库系统课程设计(MySQL)...
  9. 桥接模式: Bridge
  10. 图形2d,3d加速简介