2013 duilib入门简明教程 -- 第一个程序 Hello World(3)
来源:互联网 发布:电脑卡片制作软件 编辑:程序博客网 时间:2024/05/26 12:56
小伙伴们有点迫不及待了么,来看一看Hello World吧:
新建一个空的win32项目,新建一个main.cpp文件,将以下代码复制进去:
#include <windows.h>#include <tchar.h>int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow){ ::MessageBox(NULL, _T("Hello World !"), NULL, NULL); return 0;}
运行即可看到如下结果:
咦,这不是win32程序么,你小子忽悠我?
~O(∩_∩)O~ 这正是Alberl想要说的:duilib仅仅是一个基于win32的UI库而已,并不是用了duilib以后,它就不是win32程序了。
很多小伙伴在群里问怎么加托盘,加程序图标等等,可能觉得duilib应该会像MFC一样提供很多封装好的类;或者觉得duilib有实现托盘的功能;或者觉得duilib完全替代了win32和MFC。所以这里Alberl提醒下: duilib并没有像MFC那样把所有的东西全包了,它仅仅包装了UI部分而已,其他的还是需要用win32、MFC的知识,所以除了UI部分,其他的都和duilib木有关系,小伙伴们直接搜索windows相应的关键字就行啦。
再次强调:把duilib当作一个类库用,而不是一个语言、IDE、框架 ~\(^o^)/~
下面我们来看一看duilib的Hello World。
(注意:
1、本教程使用的是duilib目前最新的代码,不会下载最新代码的,请阅读【2013 duilib入门简明教程 -- VS环境配置(2)】
2、编译错误的,说明还没配置好环境,请阅读【2013 duilib入门简明教程 -- VS环境配置(2)】
3、鉴于许多网友后面有各种小问题,所以建议大家先下载整个教程的源码,下载请进【2013 duilib入门简明教程 -- 总结 (20)】
)
#pragma once#include <UIlib.h>using namespace DuiLib;#ifdef _DEBUG# ifdef _UNICODE# pragma comment(lib, "DuiLib_ud.lib")# else# pragma comment(lib, "DuiLib_d.lib")# endif#else# ifdef _UNICODE# pragma comment(lib, "DuiLib_u.lib")# else# pragma comment(lib, "DuiLib.lib")# endif#endifclass CDuiFrameWnd : public CWindowWnd, public INotifyUI{public: virtual LPCTSTR GetWindowClassName() const { return _T("DUIMainFrame"); } virtual void Notify(TNotifyUI& msg) {} virtual LRESULT HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam) { LRESULT lRes = 0; if( uMsg == WM_CREATE ) { CControlUI *pWnd = new CButtonUI; pWnd->SetText(_T("Hello World")); // 设置文字 pWnd->SetBkColor(0xFF00FF00); // 设置背景色 m_PaintManager.Init(m_hWnd); m_PaintManager.AttachDialog(pWnd); return lRes; } if( m_PaintManager.MessageHandler(uMsg, wParam, lParam, lRes) ) { return lRes; } return __super::HandleMessage(uMsg, wParam, lParam); }protected: CPaintManagerUI m_PaintManager;};int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow){ CPaintManagerUI::SetInstance(hInstance); CDuiFrameWnd duiFrame; duiFrame.Create(NULL, _T("DUIWnd"), UI_WNDSTYLE_FRAME, WS_EX_WINDOWEDGE); duiFrame.ShowModal(); return 0;}
一个Hello World就完成了,是不是很简单呢^_^
PS:上述代码除了显示了文字以外,还有以下特点:
1、鼠标移到客户区(绿色部分)时,鼠标样式会变成手型
2、调整窗口大小以及最大化时,Hello World会自适应窗口的大小,一直都居中
3、如果想改变背景颜色的话,直接调用SetBkColor就行啦,是不是比win32和MFC方便呢~\(^o^)/~
0 0
- duilib入门简明教程 -- 第一个程序 Hello World(3)
- 2013 duilib入门简明教程 -- 第一个程序 Hello World(3)
- Android简明开发教程三:第一个应用Hello World
- Android简明开发教程三:第一个应用Hello World
- Java入门第一个程序:Hello World!
- 入门Linux,第一个Hello world程序
- VS2012入门图文教程——第一个程序Hello World
- dubbo学习教程(一):完成入门第一个hello world程序【基于zookeeper】
- 第一个“Hello World”程序
- 第一个程序:"Hello World"
- 第一个程序:Hello World
- 第一个程序:Hello World
- Hello World 第一个程序
- 第一个程序“Hello World !”
- duilib入门简明教程
- DuiLib入门简明教程
- DUILIB入门简明教程
- duilib入门简明教程
- unity3d游戏物体跟着鼠标方向移动
- c# 委托 envent 工具类
- 2013 duilib入门简明教程 -- 前言(1)
- Alberl 2013 duilib入门简明教程 -- VS环境配置(2)
- python 使用sqlite3
- 2013 duilib入门简明教程 -- 第一个程序 Hello World(3)
- java实现一个简单的HTTP服务器,带打开网页和计算功能
- Linux下动态挂载硬盘,其实就这么简单
- 2013 duilib入门简明教程 -- 响应按钮事件(4)
- 看书小记4(《C专家编程》)
- 由于目标机器积极拒绝,无法连接(一种变态问题)
- Android---利用SharedPreferences来保存应用程序的配置信息
- 2013 duilib入门简明教程 -- 自绘标题栏(5)
- 2013 duilib入门简明教程 -- XML配置界面(6)