首页 > REDM基础教程 > REDM基础教程5-使用DM库、DM库入口
2016十月25

REDM基础教程5-使用DM库、DM库入口

[隐藏]

我们使用最开始新建的MyRes资源包吧,因为改变过的MyRes资源包是把预设控件都删除掉了,所以消息是无法响应的

如果你找不到了,先把改变过的MyRes资源包备份下,再用设计器新建一个MyRes资源包做为本节教程的测试吧

  MyTest工程下载—>

MyTest.zip

MyRes.zip

1.使用DM库

MyTest工程使用了预编译,我把所有的头文件都放在StdAfx.h这一个文件下面,这样的好处是被包含文件列表关系清楚,包含DM的头如下:

// DM
#include "DmMainOutput.h"

// lib
#ifdef _DEBUG
#pragma comment(lib,"DmMain_d.lib")
#else
#pragma comment(lib,"DmMain.lib")
#endif

using namespace DM;

DM把基本要用到的头文件统一封装在了DmMainOutput.h,不包括DUI内置子控件的头文件(如DUIButton.h等,你需要自己添加,DUI内置子控件均位于DMMain\Widgets这个filter下)

2.png

—>

如果要使用DLL方式,则需要加上宏DLL_DMMAIN,即CMake中勾选DM_DMDLL_

   

2.DM入口  

Test.cpp文件中是DM库的入口

int APIENTRY _tWinMain(HINSTANCE hInstance,
					   HINSTANCE hPrevInstance,
					   LPTSTR    lpCmdLine,
					   int       nCmdShow)
{   
	OleInitialize(NULL);// 使用OLE环境
	DMApp theApp(hInstance);// 全局唯一对象

	theApp.LoadResPack((WPARAM)(L"MyRes"),NULL,NULL);// 路径总是相对于生成目录
	theApp.InitGlobal();// 初始化指定的全局skin、style、默认字体

	DMSmartPtrT<CMainWnd> pMainWnd;
	pMainWnd.Attach(new CMainWnd());
	pMainWnd->DM_CreateWindow(L"main",0,0,0,0,NULL,false);// 创建主窗口

	pMainWnd->SendMessage(WM_INITDIALOG);
	pMainWnd->CenterWindow();
	pMainWnd->ShowWindow(SW_SHOW);
	theApp.Run(pMainWnd->GetSafeHwnd());// 运行当前线程的消息循环,并加入消息队列管理中

	return (int) 0;
}

1.声明一个全局唯一对象theApp,后面我们可以统一使用g_pDMApp去调用它

#define  g_pDMApp                                   DMApp::getSingletonPtr()

2.加载MyRes资源包

theApp.LoadResPack((WPARAM)(L"MyRes"),NULL,NULL);	

3.创建主窗口

pMainWnd->DM_CreateWindow(L"main",0,0,0,0,NULL,false);				

main对应MyRes资源中包中main的标识

下面演示了name为main对应的xml文件

16.gif

下面演示了name为main对应的界面

2.png

它们的对应关系都在MyRes\layout\dmindex.xml

<layout>
	<file name="main" path="layout\xml\main.xml" />
</layout>

4.运行消息循环

theApp.Run(pMainWnd->GetSafeHwnd());								

  

下一节教程:REDM基础教程6-主窗口消息分发

   

文章作者:hgy413
本文地址:https://hgy413.com/3597.html
版权所有 © 转载时必须以链接形式注明作者和原始出处!

One Response to “REDM基础教程5-使用DM库、DM库入口”

  1. #1 g even 回复 | 引用 Post:2020-06-11 02:35

    Excellent blog here! Also your site loads up fast!
    What host are you using? Can I get your affiliate link to your host?
    I wish my web site loaded up as fast as yours lol

发表评论