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;
}
Пример #3
0
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;
}
Пример #4
0
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;
}
Пример #6
0
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;
}