网上找到Duilib入门教程中,第一个给的时基于SDK的例子,在这里,自己写了个MFC的,与入门教程中的例子一样。

新建一个窗口类(CTestDlg)

TestDlg.h内容如下:

  1. #pragma once
  2. class CTestDlg:public CWindowWnd, INotifyUI
  3. {
  4. public:
  5. CTestDlg(void);
  6. ~CTestDlg(void);
  7. public:
  8. LPCTSTR GetWindowClassName() const;
  9. UINT GetClassStyle() const;
  10. void OnFinalMessage(HWND hWnd);
  11. void Notify(TNotifyUI& msg);
  12. LRESULT HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam);
  13. private:
  14. CPaintManagerUI m_pm;
  15. };

TestDlg.cpp内容如下:

  1. #include "StdAfx.h"
  2. #include "TestDlg.h"
  3. CTestDlg::CTestDlg(void)
  4. {
  5. }
  6. CTestDlg::~CTestDlg(void)
  7. {
  8. }
  9. LPCTSTR CTestDlg::GetWindowClassName() const
  10. {
  11. return L"CTestDlg";
  12. }
  13. UINT CTestDlg::GetClassStyle() const
  14. {
  15. return UI_CLASSSTYLE_FRAME | CS_DBLCLKS;
  16. }
  17. void CTestDlg::OnFinalMessage(HWND hWnd)
  18. {
  19. }
  20. void CTestDlg::Notify(TNotifyUI& msg)
  21. {
  22. if( msg.sType == _T("click") ) {
  23. if( msg.pSender->GetName() == _T("closebtn") ) {
  24. Close();
  25. }
  26. }
  27. }
  28. LRESULT CTestDlg::HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)
  29. {
  30. if( uMsg == WM_CREATE ) {
  31. m_pm.Init(m_hWnd);
  32. CControlUI *pButton = new CButtonUI;
  33. pButton->SetName(_T("closebtn"));
  34. pButton->SetBkColor(0xFFFF0000);
  35. m_pm.AttachDialog(pButton);
  36. m_pm.AddNotifier(this);
  37. return 0;
  38. }
  39. else if( uMsg == WM_DESTROY ) {
  40. ::PostQuitMessage(0);
  41. }
  42. LRESULT lRes = 0;
  43. if( m_pm.MessageHandler(uMsg, wParam, lParam, lRes) ) return lRes;
  44. return CWindowWnd::HandleMessage(uMsg, wParam, lParam);
  45. }

然后,在主对话框的类中,增加一个成员变量

  1. CTestDlg m_testDlg;

在OnInitDialog函数中,增加如下两行代码:

  1. m_testDlg.Create(*this, NULL, UI_WNDSTYLE_CHILD, 0, 0, 0, 642, 520);
  2. m_testDlg.ShowWindow(TRUE);

编译运行,即可。

MFC中使用Duilib--1的更多相关文章

  1. duilib进阶教程 -- 在MFC中使用duilib (1)

    由于入门教程的反响还不错,因此Alberl就以直播的形式来写<进阶教程>啦,本教程的前提: 1.请先阅读<仿迅雷播放器教程> 2.要有一定的duilib基础,如果还没,请先阅读 ...

  2. MFC中混合使用Duilib制作界面

    因为公司项目最近入了MFC的这个大坑,用MFC做UI做了一段时间,感觉不是很方便,开发效率有点慢. 看了c++里面做界面的类库,感觉Duilib比较符合做界面的需求,而且很多大公司也在使用Duilib ...

  3. 如何在WTL和MFC中使用duilib及如何静态使用duilib库!(初级讲解 附带一个Demo)

    关于duilib的历史,我也就不多说了,能看到这篇文章的人都是有一定了解才能找到这个的. 我直接说下对这个库的基本使用吧. 我个人对一些好技术都是比较感兴趣的. 因为个人原因 喜欢接触一个好技术. 所 ...

  4. MFC中使用FLASH

    一.准备工作 第一步:下载并安装Adobe Flash Player. 从官方网站(http://get.adobe.com/cn/flashplayer/)上下载最新的Flash Player(大约 ...

  5. MFC中换行实现

    在mfc中编辑框允许输入多行时,换行符被表示为<归位><换行>即"\r\n",用ascii码表示为13 10 如果为编辑框中想要输入换行,就请将编辑框的属性 ...

  6. MFC中的各种DC区别

    转载自:xntop的<区别MFC中的CClientDC.CWindowDC.CPaintDC.CMetaFileDC> CClientDC及其子类 1. CClientDC类只能在客户区绘 ...

  7. VC++ MFC中如何将应用程序的配置信息保存到注册表中(二)

    在上一篇中介绍了几个写入注册表数据和读取注册表数据的接口,并介绍了使用方法. 这一片教你如何使得你的应用程序在下次打开时保持上一次关闭前的状态. 在上一篇添加的代码的基础上,要添加WM_CLOSE消息 ...

  8. MFC中对话框类(Dialog)的应用

    转载http://hi.baidu.com/jackywdx/item/feee8041d2c2e12310ee1e85 Windows应用程序通常是通过对话框接收用户输入.向用户输出信息,本节介绍应 ...

  9. MFC中添加消息响应函数

    转自:http://blog.csdn.net/eddy_liu/article/details/8474677 目前,用MFC设计的Windows应用程序几乎都采用文档/视图结构.这种程序框架与简单 ...

  10. MFC中使用Duilib--2

    在上一篇文章"MFC中使用Duilib--1"中, 没有用到资源文件,即xml,本篇讲怎样加载文件. 1.  在exe输出目录下,创建一个skin目录,里面放入需要用到的图片文件, ...

随机推荐

  1. 微软发布Windows Phone 8.1 Update 和中文版Cortana“小娜”

    Windows Phone 8.1 尚在推送进程中,它的第一个 GDR 更新就发布了.今天微软正式发布 Windows Phone 8.1 Update 和中文版 Cortana ——“小娜”. Wi ...

  2. DetectEncoding

    private Encoding DetectEncoding(ref Stream stream) { if (_pageEncoding != null) { return _pageEncodi ...

  3. hdu2196 树的直径 + bfs

    //Accepted 740 KB 15 ms //树的直径 //距离一个顶点最远的点一定是树的直径的一个端点 #include <cstdio> #include <cstring ...

  4. 自适应label的高度

    iOS7以下的系统可使用方法 //获得当前cell高度 CGRect frame = [self frame]; //文本赋值 self.introduction.text = text; //设置l ...

  5. hdu 2055

    PS:上课的时候敲的..这道题简单..一次AC,不多说了.. 代码: #include "stdio.h"int main(){ int i,n,y; char x,a[26],b ...

  6. 通过AssetsLibrary框架访问所有相片

    该框架下有几个类,ALAssetsLibrary,ALAssetsGroup,ALAsset,ALAssetsFilter,ALAssetRepresentation. ALAssetsLibrary ...

  7. BZOJ 1045 糖果传递

    奇怪的式子.最后发现取中位数. #include<iostream> #include<cstdio> #include<cstring> #include< ...

  8. Map写入的顺序 输出地顺序ZT

    偶然间 发现hashmap遍历的结果不是放入的顺序 为了项目某个功能更人性话 思考了半天还是不知道如何下手 因为有种种条件限制 后来 无意中发现 java.util.LinkedHashMap< ...

  9. ZOJ2006 (最小表示法)

    var s:ansistring; cas:longint; function minp(st,len:longint):longint; var p1,p2,k,tmp:longint; begin ...

  10. Golang Deco Enco

    mproto.go package mproto import ( "bytes" "encoding/binary" "fmt" &quo ...