// WindowClassDefinition.cpp // // Revision Log // // Date Who SAR Notes // ========== === ======= ===================================== // (c) Reliable Software, 1997, 98 // Bartosz Milewski, www.relisoft.com // 2001-06-04 mph add namespace rfc (Reliable Foundation Class) // 2001-10-22 mph Add functionality // // #include "WindowClassDefinition.h" #include "WinException.h" namespace rfc { WindowClassDefinition::WindowClassDefinition(char const * className, HINSTANCE hInst, WNDPROC wndProc) : SimpleWindowClassDefinition(className, hInst) { SetDefaults(); _class.lpfnWndProc = wndProc; } WindowClassDefinition::WindowClassDefinition(int resId, HINSTANCE hInst, WNDPROC wndProc) : SimpleWindowClassDefinition(resId, hInst) { SetDefaults(); _class.lpfnWndProc = wndProc; } WindowClassDefinition::~WindowClassDefinition() { } void WindowClassDefinition::SetDefaults() { // Provide reasonable default values _class.cbSize = sizeof(WNDCLASSEX); _class.style = 0; _class.lpszClassName = GetName(); _class.hInstance = GetInstance(); _class.hIcon = 0; _class.hIconSm = 0; _class.lpszMenuName = 0; _class.cbClsExtra = 0; _class.cbWndExtra = sizeof(void*); _class.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); //_class.hbrBackground = 0; _class.hCursor = ::LoadCursor(0, IDC_ARROW); // fixit: use LoadImage() //_class.hCursor = 0; _class.lpfnWndProc = NULL; } void WindowClassDefinition::SetCursor(HCURSOR hCursor) { _class.hCursor = hCursor; } void WindowClassDefinition::SetMenu(int resId) { if (resId) _class.lpszMenuName = MAKEINTRESOURCE(resId); else _class.lpszMenuName = 0; } void WindowClassDefinition::SetResIcons(int resId) { if (resId) { _stdIcon.Load(_class.hInstance, resId); _smallIcon.Load(_class.hInstance, resId); _class.hIcon = _stdIcon; _class.hIconSm = _smallIcon; } else { _class.hIcon = 0; _class.hIconSm = 0; } } void WindowClassDefinition::SetStyle(UINT style) { _class.style = style; } void WindowClassDefinition::Register() { if (::RegisterClassEx(&_class) == 0) throw WinException("Internal error: RegisterClassEx failed.", __FILE__, __LINE__); } BOOL WindowClassDefinition::Unregister() { return ::UnregisterClass(GetName(), GetInstance()); } } // end namespace rfc