
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:
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


0