Giter Site home page Giter Site logo

iuishop / libuidk Goto Github PK

View Code? Open in Web Editor NEW
395.0 24.0 209.0 169.97 MB

mfc skin ui,not directui。视频教程:https://v.youku.com/v_show/id_XNTczMzg5MDky.html 简单来说,LibUIDK是用来开发QQ、360安全卫士那样的漂亮软件界面的。 LibUIDK原来是商业界面库,2019年9月8号开源。是专业开发Windows平台下图形用户界面的开发包,该开发包基于Microsoft的MFC库。使用此开发工具包可轻易把美工制作的精美界面用Visual C++实现,由于LibUIDK采用所见即所得的方式创建产品界面,所以极大的提高了产品的开发速度,并大大增强图形用户界面(GUI)的亲和力。LibUIDK还可以使您的软件轻松具有当今流行的换肤功能,以提高产品的竞争力。 在很多公司或个人研发换肤产品的时候,我们就推出了第一款界面开发工具。与换肤工具不同的是,界面工具贯穿整个项目开发周期,整个项目的界面,都可由LibUIDK完成。LibUIDK提供了比换肤工具彻底的多的界面自由定制功能。 LibUIDK的目标用户: 任何使用MFC的程序开发人员。如果需要使用LibUIDK制作界面,请通知作者,QQ:1584793892。

License: Other

C++ 92.06% C 7.94%

libuidk's Introduction

LibUIDK是什么

简单来说,LibUIDK是用来开发QQ、360安全卫士那样的漂亮软件界面的。
LibUIDK原来是商业界面库,2019年9月8号开源。是专业开发Windows平台下图形用户界面的开发包,也是国内第一款商业的高级界面开发工具。
该开发包基于Microsoft的MFC库。使用此开发工具包可轻易把美工制作的精美界面用Visual C++实现,由于LibUIDK采用所见即所得的方式创建产品界面,所以极大的提高了产品的开发速度,并大大增强图形用户界面(GUI)的亲和力。
LibUIDK还可以使您的软件轻松具有当今流行的换肤功能,以提高产品的竞争力。 在很多公司或个人研发换肤产品的时候,我们就推出了第一款界面开发工具。与换肤工具不同的是,界面工具贯穿整个项目开发周期,整个项目的界面,都可由LibUIDK完成。LibUIDK提供了比换肤工具彻底的多的界面自由定制功能。

LibUIDK的目标用户:

任何使用MFC的程序开发人员。

为什么使用LibUIDK:

  • 加快开发速度

    开发一个中等规模的UI产品, 大约需要一个熟练掌握MFC的开发人员写三个月(并且还不包含Debug的时间). 而使用LibUIDK, 可以提高数百倍的效率, 一般几个小时就可以完成. 这是由于LibUIDK所见即所得的开发方式,以及引入的窗口类向导,使开发效率的提升突破您的想象。这不仅节约了时间成本, 还节约了财力成本. 最重要的是, 您可以快速推出产品, 从而使您在与您的竞争对手的较量中处理优势地位。 LibUIDK使您的开发由手工作坊式变为机械化大生产式。

  • 节约成本

    使用LibUIDK开发产品,不仅所需时间大为减少, 所需人力也大大减少,通常情况,只需要1个初级程序员来开发界面。所以会使贵公司在人力资源方面减少投入。

  • 减小程序Bug数量

    一般一个中等规模产品的UI大约有5000-10000行代码, 按每100行代码1个Bug的概率, 可能整个UI有50-100个Bug. 而LibUIDK经过多年的发展和数万用户的使用, 系统已经非常稳定可靠, 所以可以大幅减少您的产品的UI部分的Bug数量,节约大量的Debug时间。

  • 学习门槛低

    由于LibUIDK提供了所见即所得的界面开发工具UIShop,使得LibUIDK学习门槛大大降低,低到甚至非程序员(如美工、产品经理等)都可以完成一些界面开发。使用LibUIDK,界面90%的开发过程,都是在UIShop中进行。而UIShop,不要求使用者具有程序员背景。只有界面在运行中需要交互时,才需要程序员介入。

  • 完全基于MFC

    基于MFC,而不是由我们自己设计控件的好处是显而易见的:

    1. 学习成本极低
      大部分MFC程序员不经过培训可以直接使用LibUIDK开发界面。即使需要培训,LibUIDK全部培训时间,也仅需要1---2个小时; 由于LibUIDK基本上仅对MFC控件的外观进行修改,不涉及控件功能,所以对于控件的操作,仍然是调用原MFC控件类的相关接口,可以方便的从MSDN或网络上获得及时帮助
    2. 后期维护成本低
      程序员以前所学的所有关于编程的经验,仍然可以运用到LibUIDK上,并且MFC程序员是一支庞大的队伍,很容易找到相关人才。
    3. 风险可控---有问题可以绕过去
      即使在没有我们支持的情况下,程序员也可以利用子类化、替换窗口过程等技术来控制控件;使用MoveWindow移动控件;使用ShowWindow隐藏控件;或者用您自己编写的控件替换LibUIDK控件。LibUIDK是开放式平台,与直接使用MFC一致,您可以选择使用或部分使用LibUIDK中的控件,也可以任意使用第三方控件。不会由于使用LibUIDK导致在开发过程中,引入无穷无尽,莫名其妙的各类问题,使用LibUIDK与使用标准MFC开发项目对风险的期望值是相同的。
    4. 兼容性好
      LibUIDK完全由MFC开发,除了MFC没有的控件外,其它控件都是在MFC控件类基础上派生的,所以完全杜绝了自己模拟控件模拟不全的情况发生。因为很多MFC标准控件的细节不容易被发现,更不容易被全部发现,模拟时,总会有或多或少的遗漏。一旦用户恰好需要那个未模拟的形为,就得修改界面库,重新模拟,模拟需要时间去开发、测试。甚至可能由于时间关系,导致客户项目流产,模拟控件的代码健壮性恐怕也没有微软的成熟控件强。
    5. 移植成本低,与原有项目无缝集成
      如果原项目采用MFC来开发,那么在移植到LibUIDK项目时,只要保持新旧工程界面控件类型、ID一致,那么旧工程中的相关代码,仍然可以应用到新的工程中,而不需要重写一套。
  • 容易对客户的需求做出改变

    一个产品在开发过程中, 常常会根据客户的要求, 进行反复修改. 大量的修改常令程序员感到无所适从. 由于LibUIDK采用所见既所得的方式生成代码, 所以修改起来非常方便。

  • 贵公司的GUI开发能力可能不足

    如果贵公司的专业领域不在GUI的开发, 但临时有项目需要较高水平的GUI规格. 那您可以使用LibUIDK来进行开发.

libuidk's People

Contributors

iuishop avatar windfreess avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

libuidk's Issues

Bug with 64bit UIShop

Create a new project and double click the IDW_MAIN node under Windows root node in the fileview pane, the program crushes.
Reason: the TreeControl api calls to "SetItemData" and "GetItemData" should take a DWORD_PTR type for params dat.
For example:
m_treeWindow.SetItemData(m_hResourceRoot, (DWORD)pData)
should be:
m_treeWindow.SetItemData(m_hResourceRoot, (DWORD_PTR)pData)
To fix the bug:
Replace "(DWORD)pData" with "(DWORD_PTR)pData" project-wise .

编译就是通过不了

我这边使用了vs2017与vs2019都不行,编译平台是32位的,配置是release unicode static与debug unicode static
安装了v141工具集与v142工具集,也是不行。
请问下,您这边编译的环境是什么。

在编译到 UIShop.cpp:389行的时候 pMainFrame->UpdateWindow(); 总是报 D:\soft\visual_studio\VC\Tools\MSVC\14.27.29110\atlmfc\src\mfc\afxtoolbarimages.cpp:4313 values2[c] += (double)(*pRowSrc2) * weight2;

引发了异常: 读取访问权限冲突。 **pRowSrc2** 是 0x3676008。

“x64\Debug Static\LibUIDK.pch”: No such file or directory

vs2017编译问题,并没有#include <stdafx.h>找到相关LibUIDK.pch的数据
VS2017项目配置:Debug x64,关闭Sp缓存,共享DLL MFC, SDK:10.0.17134.0 目标平台win10
....................... 1>f:\libuidk\libuidk\wlbutton.cpp(4): fatal error C1083: 无法打开预编译头文件: “x64\Debug Static\LibUIDK.pch”: No such file or directory 1>WLIMRichEditCtrl.cpp 1>f:\libuidk\libuidk\wlimricheditctrl.cpp(1): fatal error C1083: 无法打开预编译头文件: “x64\Debug Static\LibUIDK.pch”: No such file or directory 1>WLLine.cpp 1>f:\libuidk\libuidk\wlline.cpp(4): fatal error C1083: 无法打开预编译头文件: “x64\Debug Static\LibUIDK.pch”: No such file or directory 1>WLPicture.cpp 1>f:\libuidk\libuidk\wlpicture.cpp(4): fatal error C1083: 无法打开预编译头文件: “x64\Debug Static\LibUIDK.pch”: No such file or directory 1>WLRichEditCtrl.cpp 1>f:\libuidk\libuidk\wlricheditctrl.cpp(4): fatal error C1083: 无法打开预编译头文件: “x64\Debug Static\LibUIDK.pch”: No such file or directory 1>WLSliderCtrl.cpp 1>f:\libuidk\libuidk\wlsliderctrl.cpp(4): fatal error C1083: 无法打开预编译头文件: “x64\Debug Static\LibUIDK.pch”: No such file or directory 1>正在生成代码... 1>正在编译... 1>WLSplitterBar.cpp 1>f:\libuidk\libuidk\wlsplitterbar.cpp(4): fatal error C1083: 无法打开预编译头文件: “x64\Debug Static\LibUIDK.pch”: No such file or directory 1>WLText.cpp 1>f:\libuidk\libuidk\wltext.cpp(4): fatal error C1083: 无法打开预编译头文件: “x64\Debug Static\LibUIDK.pch”: No such file or directory 1>WLWnd.cpp 1>f:\libuidk\libuidk\wlwnd.cpp(4): fatal error C1083: 无法打开预编译头文件: “x64\Debug Static\LibUIDK.pch”: No such file or directory

请问下代码界面分离是如何设置呢?

平台:win10 + vs2017
请问下视频教程中给的代码和界面分离的宏定义"INIT_MSG_MAP",在VS2017生成的工程已经找不到了,如果是要在VS2017环境中设置代码和界面分离的话,最好的编写方式是什么样子的呢?谢谢

UIShop

编译生成的X64 Debug UIshop 创建一个测试例子后,双击左侧的主窗口(IDW_MAIN)或者子窗口(IDW_CHILD),UIShiop崩溃了。程序崩溃位置在pData->eTreeItemType,非法内存操作。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.