bool container_window::class_release() { if (!get_class_data().refcount && get_class_data().class_registered) { BOOL ret = UnregisterClass(get_class_data().class_name, core_api::get_my_instance()); get_class_data().class_registered = !ret; } return get_class_data().class_registered == false; }
HWND container_window::create(HWND wnd_parent, LPVOID create_param, const ui_helpers::window_position_t & p_window_position) { ensure_class_registered(); LPVOID createparams[2] = {this, create_param}; wnd_host = CreateWindowEx(get_class_data().ex_styles, get_class_data().class_name, get_class_data().window_title, get_class_data().styles, p_window_position.x, p_window_position.y, p_window_position.cx, p_window_position.cy, wnd_parent, 0, core_api::get_my_instance(), &createparams); return wnd_host; }
HWND container_window::create(HWND wnd_parent, LPVOID create_param) { ensure_class_registered(); LPVOID createparams[2] = {this, create_param}; wnd_host = CreateWindowEx(get_class_data().ex_styles, get_class_data().class_name, get_class_data().class_name, get_class_data().styles, 0, 0, 0, 0, wnd_parent, 0, ATL::_AtlBaseModule.GetResourceInstance(), &createparams); return wnd_host; }
bool container_window::class_release() { get_class_data().refcount--; if (!get_class_data().refcount && get_class_data().class_registered) { get_class_data().class_registered = !UnregisterClass(get_class_data().class_name, ATL::_AtlBaseModule.GetResourceInstance()); } return get_class_data().class_registered == false; }
bool container_window::ensure_class_registered() { if (!get_class_data().class_registered) { WNDCLASS wc; memset(&wc,0,sizeof(WNDCLASS)); wc.lpfnWndProc = (WNDPROC)window_proc; wc.hInstance = core_api::get_my_instance(); wc.hCursor = LoadCursor(NULL, get_class_data().cursor); wc.hbrBackground = get_class_data().want_transparent_background ? NULL : (HBRUSH)(COLOR_BTNFACE+1); wc.lpszClassName = get_class_data().class_name; wc.style = get_class_data().class_styles; wc.cbWndExtra = get_class_data().extra_wnd_bytes; get_class_data().class_registered = (RegisterClass(&wc) != 0); } return get_class_data().class_registered; }
bool container_window::ensure_class_registered() { get_class_data().refcount++; if (!get_class_data().class_registered) { WNDCLASS wc; memset(&wc,0,sizeof(WNDCLASS)); // wc.style = CS_DBLCLKS; //causes issue where double clicking resets cursor icon wc.lpfnWndProc = (WNDPROC)window_proc; wc.hInstance = ATL::_AtlBaseModule.GetResourceInstance(); wc.hCursor = LoadCursor(NULL, MAKEINTRESOURCE(IDC_ARROW)); wc.hbrBackground = (HBRUSH)(COLOR_BTNFACE+1); wc.lpszClassName = get_class_data().class_name; wc.style = get_class_data().class_styles; wc.cbWndExtra = get_class_data().extra_wnd_bytes; get_class_data().class_registered = (RegisterClass(&wc) != 0); } return get_class_data().class_registered; }