C/Visual C - C++ Pantalla Completa

 
Vista:
Imágen de perfil de veronica

C++ Pantalla Completa

Publicado por veronica (1 intervención) el 20/05/2015 00:23:36
hola me preguntaba si alguien sabe como poner una ventana de windows en c++
en pantalla completa

tengo este codigo:

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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
#include <windows.h>
#include <windowsx.h>
#include "RENDER.h"
#define Nombre L"P_V2"//nombre de la ventana
#define ancho_V 1300
#define alto_V 700
#include "GAMEPAD.h"
 
render *rendder;
InputController gamepad;
bool haygamepad1, haygamepad2;
 
							//hWnd Numero de identificacion de ventana
											//uMsg mensaje de la ventana
														//wParam lParam informacion adicional
LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	switch(uMsg)
	{
	case WM_DESTROY:
		PostQuitMessage(0);
		break;
	case WM_KEYDOWN:
		{
			switch(wParam)
			{
			case VK_UP:
				rendder->cam->MoveForward();
				break;
			case VK_DOWN:
				rendder->cam->MoveBackward();
				break;
			case VK_RIGHT:
				rendder->cam->RotateOverYPositive();
				break;
			case VK_LEFT:
				rendder->cam->RotateOverYNegative();
				break;
			case VK_ESCAPE:
 
				break;
			}
		}
 
	default:
		return DefWindowProc(hWnd, uMsg, wParam, lParam);
 
		break;
	}
}
							//_________________    _________________________     _______________________________
							//hInstance numero |   |hPrevInstance es 0 y no |   |nCmdShow bandera que dice si   |
							//que identifica la|   |se utiliza				|	|inicia minimizada o maximizada |
							//aplicacion       |         |                                |  
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
 
	WNDCLASSEX wc;
	HWND hWnd;
	ZeroMemory(&wc, sizeof(WNDCLASSEX));
 
//	wc.cbClsExtra = 0; //extra bytes para alocar información adicional de la estrucura WNDCLASSEX.
	wc.cbSize = sizeof(WNDCLASSEX);//tamaño de la estructura, solo usa sizeof;
//	wc.cbWndExtra = 0;//extra bytes para alocar información adicional de la ventana.
//	wc.hbrBackground = (HBRUSH)(0);//color del que se va ha limpiar la ventana.
	wc.hCursor = LoadCursor(NULL, IDC_ARROW); //cursor de la ventana.
//	wc.hIcon = LoadIcon(0, IDI_APPLICATION); //icono de la aplicación.
//	wc.hIconSm = wc.hIcon;//icono pequeño de la aplicación
	wc.hInstance = hInstance; //handle to instance para identificar a la app.
	wc.lpfnWndProc = WindowProc;//puntero de la función que procesará los mensajes para esta ventana.
	wc.lpszClassName = L"WindowClass"; //nombre de la clase, le pasamos el nombre de la app.
//	wc.lpszMenuName = 0;//nombre del menu, como no tenemos menú entonces es 0.
	wc.style = CS_HREDRAW | CS_VREDRAW;/*estilo de la ventana, los flags CS_VREDRAW Y CS_HREDRAW
										 indican que cuando cambiemos de tamaño la ventana de forma
										 horizontal y vertical esta se va a volver a redibujar.*/
 
	RegisterClassEx(&wc);
 
	RECT wr = {0, 0, ancho_V, alto_V};//rectangulo donde se dibujara el directx
	AdjustWindowRect(&wr, WS_OVERLAPPEDWINDOW, FALSE);
																			   //800, 600 tamaño de la pantalla
																		//0,0 coordenadas de la pantalla
	hWnd = CreateWindowEx(NULL,L"WindowClass",Nombre,WS_OVERLAPPEDWINDOW,0,0,ancho_V,alto_V,NULL,NULL,hInstance,NULL);//crea la ventana
	ShowWindow(hWnd, nCmdShow);//muestra la ventana
 
	rendder = new render(hInstance, hWnd,ancho_V,alto_V);
 
	MSG msg ={0};
 
	gamepad.UpdateControllerState();
	if (gamepad.inputControllers[0].isConnected)
		haygamepad1=true;
	else
	{	MessageBox(NULL, L"no hay gamepad 1 use las flechas del PC", NULL,NULL);
		haygamepad1=false;}
	if (gamepad.inputControllers[1].isConnected)
	haygamepad2=true;
	else
	{
		MessageBox(NULL, L"no hay gamepad 2 use las flechas del PC", NULL,NULL);
		haygamepad2=false;
	}
 
	while(msg.message != WM_QUIT)//LOOP
	{
		if(PeekMessage(&msg, 0, 0, 0, PM_REMOVE))
		{
			TranslateMessage(&msg); //traduce virtual keys a mensajes WM_CHAR
			DispatchMessage(&msg);  //envía el mensaje recibido a la función WindowProc
 
			//	MessageBox(NULL, L"no hay gamepad use las flechas del PC", NULL,NULL);
		}
		else
		{
			//Si no hay mensajes a procesar dibuja tu geometría aquí
			rendder->rennder();
			rendder->update();
			if (haygamepad1)
			{
				gamepad.UpdateControllerState();
				float grados=gamepad.inputControllers->state.Gamepad.sThumbLX/32767.0;
				float velocidad=gamepad.inputControllers->state.Gamepad.sThumbLY/32767.0;
				if(grados<-0.19)
					rendder->cam->RotateOverYNegative();
				if (grados>0.19)
					rendder->cam->RotateOverYPositive();
				if (velocidad>0.19)
					rendder->cam->MoveForward();
				if (velocidad <-0.19)
					rendder->cam->MoveBackward();
				if(gamepad.inputControllers->state.Gamepad.wButtons==XINPUT_GAMEPAD_Y)
					Zmax++;
				if(gamepad.inputControllers->state.Gamepad.wButtons==XINPUT_GAMEPAD_A)
					Zmax--;
				if(gamepad.inputControllers->state.Gamepad.wButtons==XINPUT_GAMEPAD_X)
					Xmax--;
				if(gamepad.inputControllers->state.Gamepad.wButtons==XINPUT_GAMEPAD_B)
					Xmax++;
			}
			if (haygamepad2)
			{
				gamepad.UpdateControllerState();
				float grados=gamepad.inputControllers->state.Gamepad.sThumbLX/32767.0;
				float velocidad=gamepad.inputControllers->state.Gamepad.sThumbLY/32767.0;
				if(grados<-0.19)
					rendder->cam->RotateOverYNegative();
				if (grados>0.19)
					rendder->cam->RotateOverYPositive();
				if (velocidad>0.19)
					rendder->cam->MoveForward();
				if (velocidad <-0.19)
					rendder->cam->MoveBackward();
			}
		}
	}
 
	rendder->~render();
 
	return msg.wParam;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder