Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.03.2013, 16:03   #1
Elloriane
Пользователь
 
Регистрация: 19.02.2012
Сообщений: 60
По умолчанию Создание 2 окна, win32api

Подскажите пожалуйста как создать два окна (второе не должно быть дочерним первого)

Общие строки кода для обоих окон

Код:
	WNDCLASS	wc;						// Windows Class Structure
	DWORD		dwExStyle;				// Window Extended Style
	DWORD		dwStyle;				// Window Style
	RECT		WindowRect;				// Grabs Rectangle Upper Left / Lower Right Values
	HINSTANCE	hInst;
	WindowRect.left=(long)0;			// Set Left Value To 0
	WindowRect.right=(long)width;		// Set Right Value To Requested Width
	WindowRect.top=(long)0;				// Set Top Value To 0
	WindowRect.bottom=(long)height;		// Set Bottom Value To Requested Height

	fullscreen=fullscreenflag;			// Set The Global Fullscreen Flag

	wc.style			= CS_HREDRAW | CS_VREDRAW;	// Redraw On Size, And Own DC For Window.

	if (isChild == 0)
	{
		wc.lpfnWndProc = (WNDPROC) WndProc;	
		hInst = hInstParent;
	}// WndProc Handles Messages
	else
	{
		wc.lpfnWndProc		= (WNDPROC) WndProcChild;
		hInst = hInstChild;
	}
	
	wc.hInstance		= hInst;							// Set The Instance
	wc.hIcon			= LoadIcon(NULL, IDI_WINLOGO);			// Load The Default Icon
	wc.hCursor			= LoadCursor(NULL, IDC_ARROW);			// Load The Arrow Pointer
	wc.hbrBackground	= GetStockBrush(WHITE_BRUSH);									// No Background Required For GL
	wc.lpszMenuName		= NULL;									// We Don't Want A Menu
	wc.lpszClassName	= name;								// Set The Class Name
	wc.cbClsExtra		= 0;									// No Extra Window Data
	wc.cbWndExtra		= 0;	

	if (!RegisterClass(&wc))									// Attempt To Register The Window Class
	{
		MessageBox(NULL,"Failed To Register The Window Class.","ERROR",MB_OK|MB_ICONEXCLAMATION);
		return FALSE;											// Return FALSE
	}
Создание обоих окон
Код:
if (isChild == 0)
	{
		if (!(hWnd=CreateWindow(name,							// Class Name
								title,								// Window Title
								NULL ,							// Defined Window Style
								10, 10,								// Window Position
								WindowRect.right,	// Calculate Window Width
								WindowRect.bottom,	// Calculate Window Height
								NULL,								// No Parent Window
								NULL,								// No Menu
								hInstParent,							// Instance
								NULL)))								// Dont Pass Anything To WM_CREATE
		{
			KillGLWindow(name);								// Reset The Display
			MessageBox(NULL,"Window Creation Error.","ERROR",MB_OK|MB_ICONEXCLAMATION);
			return FALSE;								// Return FALSE
		}
	}
	else
	{
		if (!(hWndC=CreateWindowEx(	0,							// Extended Style For The Window
								name,							// Class Name
								NULL,								// Window Title
								WS_OVERLAPPEDWINDOW  ,							// Defined Window Style
								//WS_EX_STATICEDGE,					// Required Window Style
								20, 20,								// Window Position
								WindowRect.right,	// Calculate Window Width
								WindowRect.bottom,	// Calculate Window Height
								NULL,								// No Parent Window
								NULL,								// No Menu
								hInstChild,							// Instance
								NULL)))								// Dont Pass Anything To WM_CREATE
		{
			KillGLWindow(name);								// Reset The Display
			MessageBox(NULL,"Window Creation Error.","ERROR",MB_OK|MB_ICONEXCLAMATION);
			return FALSE;								// Return FALSE
		}
	}
По идее оба окна должны быть схожи.
Как только стили не менял..
В общем получается так

(причем второе окно нельзя двигать, отсутствует заголовок и оно прозрачное почему-то)
А хотелось бы

Последний раз редактировалось Elloriane; 09.03.2013 в 16:05.
Elloriane вне форума Ответить с цитированием
Старый 09.03.2013, 16:42   #2
Perchik71
С++, Delphi
Форумчанин
 
Аватар для Perchik71
 
Регистрация: 24.11.2012
Сообщений: 495
По умолчанию

у второго окна нет стиля.... получи его hwnd и используй фуну SetWindowLong() флаг вроде GWL_STYLE
Если помог, тут весы есть , Вам не сложно, а мне приятно.
Perchik71 вне форума Ответить с цитированием
Старый 09.03.2013, 17:28   #3
Elloriane
Пользователь
 
Регистрация: 19.02.2012
Сообщений: 60
По умолчанию

Точно, спасибо)
Elloriane вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание окна и opengl Himmler Visual C++ 2 25.05.2012 13:31
Создание окна CreateWindowEx _PROGRAMM_ Win Api 10 21.02.2012 14:16
Создание дочернего окна ARt44 Win Api 6 01.10.2011 00:50
Создание второго окна zotox Win Api 0 30.12.2010 17:09
Создание окна Stas96 Win Api 1 29.10.2010 21:58