2019-07-06 12:45:48 +08:00
|
|
|
|
// VirtualBox.cpp : <20><><EFBFBD><EFBFBD>Ӧ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ㡣
|
|
|
|
|
//
|
|
|
|
|
|
|
|
|
|
#include "stdafx.h"
|
|
|
|
|
#include "main.h"
|
|
|
|
|
#include "main_form.h"
|
|
|
|
|
#include "VirtualTileBox.h"
|
|
|
|
|
|
2019-09-22 12:21:38 +08:00
|
|
|
|
enum ThreadId
|
|
|
|
|
{
|
|
|
|
|
kThreadUI
|
|
|
|
|
};
|
|
|
|
|
|
2019-07-06 12:45:48 +08:00
|
|
|
|
ui::Control* MyCreateControlCallback(const std::wstring& sName)
|
|
|
|
|
{
|
|
|
|
|
if (sName == L"VirtualTileBox")
|
|
|
|
|
{
|
|
|
|
|
return new VirtualTileBox();
|
|
|
|
|
}
|
|
|
|
|
return nullptr;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
|
|
|
|
|
_In_opt_ HINSTANCE hPrevInstance,
|
|
|
|
|
_In_ LPWSTR lpCmdLine,
|
|
|
|
|
_In_ int nCmdShow)
|
|
|
|
|
{
|
|
|
|
|
UNREFERENCED_PARAMETER(hPrevInstance);
|
|
|
|
|
UNREFERENCED_PARAMETER(lpCmdLine);
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߳<EFBFBD>
|
|
|
|
|
MainThread thread;
|
|
|
|
|
|
|
|
|
|
// ִ<><D6B4><EFBFBD><EFBFBD><EFBFBD>߳<EFBFBD>ѭ<EFBFBD><D1AD>
|
|
|
|
|
thread.RunOnCurrentThreadWithLoop(nbase::MessageLoop::kUIMessageLoop);
|
|
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void MainThread::Init()
|
|
|
|
|
{
|
2019-09-22 12:21:38 +08:00
|
|
|
|
nbase::ThreadManager::RegisterThread(kThreadUI);
|
2019-07-06 12:45:48 +08:00
|
|
|
|
|
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1>Դ·<D4B4><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>ȫ<EFBFBD>ֲ<EFBFBD><D6B2><EFBFBD>
|
2019-09-20 16:27:58 +08:00
|
|
|
|
std::wstring theme_dir = nbase::win32::GetCurrentModuleDirectory();
|
2021-09-15 17:37:26 +08:00
|
|
|
|
ui::GlobalManager::Startup(theme_dir + L"resources\\", MyCreateControlCallback, true);
|
2019-07-06 12:45:48 +08:00
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>Ĭ<EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD>Ӱ<EFBFBD>ľ<EFBFBD><C4BE>д<EFBFBD><D0B4><EFBFBD>
|
|
|
|
|
MainForm* window = new MainForm();
|
|
|
|
|
window->Create(NULL, MainForm::kClassName.c_str(), WS_OVERLAPPEDWINDOW & ~WS_MAXIMIZEBOX, 0);
|
|
|
|
|
window->CenterWindow();
|
|
|
|
|
window->ShowWindow();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void MainThread::Cleanup()
|
|
|
|
|
{
|
|
|
|
|
ui::GlobalManager::Shutdown();
|
|
|
|
|
SetThreadWasQuitProperly(true);
|
|
|
|
|
nbase::ThreadManager::UnregisterThread();
|
|
|
|
|
}
|