1 Star 1 Fork 0

麦壳饼 / MoDao2MiniGUI

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

MoDao2MiniGUI

是一个将https://modao.cc/ 生成的离线包生成MiniGUI代码的工具, 我们在实际工作中使用的是MiniGUI2.0.4 后期我们会逐步完善一些C的代码。

工具通过解析墨刀的json数据 , 生成了 MiniGUI相对应控件的坐标 标题等等。

示例图:

modao

生成的代码参见

appui.h

其中关键方法如下:


void    CreateControls(PCTRLDATA controls, HWND hMainWin, LPARAM lParam)
{
	int i;
	PCTRLDATA pCtrlData;
	HWND hCtrl = 0;
	HWND hFocus;
	int controlnr = sizeof(CtrlYourTaste) / sizeof(CTRLDATA);
	if (controlnr > 0 && !controls)
	{
		echo_ui("error");
	}
	else
	{
		for (i = 0; i < controlnr; i++) {
			pCtrlData = controls + i;
			hCtrl = CreateWindowEx(pCtrlData->class_name,
				pCtrlData->caption,
				pCtrlData->dwStyle | WS_CHILD,
				pCtrlData->dwExStyle | WS_EX_TRANSPARENT,
				pCtrlData->id,
				pCtrlData->x,
				pCtrlData->y,
				pCtrlData->w,
				pCtrlData->h,
				hMainWin,
				pCtrlData->dwAddData);
			if (hCtrl == HWND_INVALID) {
				DestroyMainWindow(hMainWin);
				MainWindowThreadCleanup(hMainWin);
				return;
			}

			if (pCtrlData->dwAddData == HWND_NULL)
			{
				pCtrlData->dwAddData = (DWORD)&CTLExtDefault;
			}
			PCTRLDATAExt  cdea = (PCTRLDATAExt)pCtrlData->dwAddData;
			ApplyPCTRLDATAToCtl(cdea, hCtrl);
			if (strncmp(pCtrlData->class_name, CTRL_STATIC, strlen(CTRL_STATIC) != 0))
			{
				UpdateWindow(hCtrl, TRUE);
			}
		}

		hFocus = GetNextDlgTabItem(hMainWin, (HWND)0, FALSE);
		if (SendMessage(hMainWin, MSG_INITDIALOG, hFocus, lParam)) {
			if (hFocus)
				SetFocus(hFocus);
		}
	}
}
void  ApplyPCTRLDATAToCtl(PCTRLDATAExt cdea, HWND hCtrl)
{
	if (cdea->FontSize > 0)
	{
		SetWindowFont(hCtrl, CreateLogFont(cdea->FontType, cdea->FontName, FONT_CHARSET_GB2312_0,
			cdea->FontWeight, FONT_SLANT_ROMAN, FONT_SETWIDTH_NORMAL,
			FONT_SPACING_CHARCELL, FONT_UNDERLINE_NONE, FONT_STRUCKOUT_NONE,
			cdea->FontSize, 0));

	}
	if (cdea->ForeColor >= 0)
	{
		SetWindowElementColorEx(hCtrl, FGC_CAPTION_NORMAL, cdea->ForeColor);
		SetWindowElementColorEx(hCtrl, FGC_MENUITEM_NORMAL, cdea->ForeColor);
		SetWindowElementColorEx(hCtrl, WEC_3DBOX_NORMAL, cdea->ForeColor);
		SetWindowElementColorEx(hCtrl, FGC_CONTROL_NORMAL, cdea->ForeColor);
		SetWindowElementColorEx(hCtrl, FGC_BUTTON_NORMAL, cdea->ForeColor);
	}
	if (cdea->BackColor >= 0)
	{
		SetWindowBkColor(hCtrl, cdea->BackColor);
	}
}

空文件

简介

墨刀离线包生成MiniGUI 的C语言代码的工具 展开 收起
C#
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
C#
1
https://gitee.com/maikebing/MoDao2MiniGUI.git
git@gitee.com:maikebing/MoDao2MiniGUI.git
maikebing
MoDao2MiniGUI
MoDao2MiniGUI
master

搜索帮助