今晚終于把
GacUI所有該加上的XML注釋都加上了,開(kāi)始做起了Demo。需要做的Demo大概有幾十個(gè),除了每個(gè)控件要那么幾個(gè)以外,還有一些其他功能,譬如換皮膚換風(fēng)格啊,使用不同的渲染器啊,移植到Direct3D上什么的,好多啊,即將寫(xiě)到手軟。今天寫(xiě)了第一個(gè)Demo,是一個(gè)helloworld程序。創(chuàng)建一個(gè)GacUI程序是一件很容易的事情,首先下載
GacUI的最新代碼(在有了Release之后會(huì)有更好的文件組織和html文檔),然后將“Libraries\GacUI\Public\Source”下面的5個(gè)文件添加進(jìn)建好的Visual C++的Windows工程里面,然后開(kāi)始寫(xiě)main函數(shù):
#include "..\..\Public\Source\GacUIIncludes.h"
#include <Windows.h>
int CALLBACK WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int CmdShow)
{
return SetupWindowsDirect2DRenderer();
}
void GuiMain()
{
GuiWindow* window=g::NewWindow();
window->SetText(L"Hello, world!");
window->SetClientSize(Size(640, 480));
window->MoveToScreenCenter();
GuiControl* label=g::NewLabel();
label->SetText(L"Welcome to GacUI Library!");
{
FontProperties font;
font.fontFamily=L"Segoe UI";
font.size=40;
font.antialias=true;
label->SetFont(font);
}
window->AddChild(label);
GetApplication()->Run(window);
delete window;
}
Main函數(shù)里面需要選擇渲染器,這里選的是Direct2D。如果要選擇GDI,則調(diào)用SetupWindowsGDIRenderer。至于void GuiMain(void)函數(shù)則是類(lèi)庫(kù)自己的要求,一定要有那么一個(gè),因?yàn)镾etupWindowsDirect2DRenderer(或GDI)最終會(huì)進(jìn)行一大段初始化工作之后調(diào)用一個(gè)聲明了卻沒(méi)有實(shí)現(xiàn)的void GuiMain(void)函數(shù),所以一個(gè)合法的GacUI工程需要包含void GuiMain(void)的實(shí)現(xiàn),也就是上面這樣。
然后接下來(lái)的就是普通的工作了,創(chuàng)建一個(gè)GuiWindow,加點(diǎn)東西,Run一下當(dāng)主窗口。當(dāng)主窗口被關(guān)掉的時(shí)候Run函數(shù)就會(huì)結(jié)束,這個(gè)時(shí)候進(jìn)行一下必要的清理,程序就可以結(jié)束了。運(yùn)行之后就是下面這個(gè)樣子:

至此HelloWorld的Demo就結(jié)束了。
posted on 2012-04-23 07:37
陳梓瀚(vczh) 閱讀(2471)
評(píng)論(12) 編輯 收藏 引用 所屬分類(lèi):
GacUI