1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
void CWindow::Create(const std::string Title, const CVector Size, const HINSTANCE Instance, const CVector Position, const std::string Icon)
{
//zero the WindowClass
WNDCLASSEX WindowClass;
ZeroMemory(&WindowClass, sizeof(WNDCLASSEX));
//set WindowClass properties
WindowClass.cbSize = sizeof (WNDCLASSEX);
WindowClass.style = CS_HREDRAW | CS_VREDRAW;
WindowClass.lpfnWndProc = reinterpret_cast<WNDPROC>(WindowProc);
WindowClass.hInstance = Instance;
WindowClass.hIcon = (Icon.c_str()!=NULL)?static_cast<HICON>(LoadImage(NULL, Icon.c_str(), IMAGE_ICON, 0, 0, LR_DEFAULTSIZE | LR_LOADFROMFILE)):LoadIcon (NULL, IDI_APPLICATION);
WindowClass.hIconSm = (Icon.c_str()!=NULL)?static_cast<HICON>(LoadImage(NULL, Icon.c_str(), IMAGE_ICON, 0, 0, LR_DEFAULTSIZE | LR_LOADFROMFILE)):LoadIcon (NULL, IDI_APPLICATION);
WindowClass.hCursor = LoadCursor (NULL, IDC_ARROW);
WindowClass.hbrBackground = reinterpret_cast<HBRUSH>(16);
WindowClass.lpszClassName = Title.c_str();
//register WindowClass
if(RegisterClassEx(&WindowClass) == 0)
{
throw(CException(0x00));
}
//create window
mWindow = CreateWindowEx( NULL,
Title.c_str(),
Title.c_str(),
WS_OVERLAPPEDWINDOW | WS_VISIBLE,
static_cast<int>(Position.mX),
static_cast<int>(Position.mY),
static_cast<int>(Size.mX),
static_cast<int>(Size.mY),
NULL,
NULL,
Instance,
NULL);
//check wether window was created successfully and set not closed
if(mWindow != 0) mClosed[mWindow] = false;
else throw(CException(0x01));
}
|