La programación WIN32 no puede mostrar bits (con código)
#Incluir "resource.h"
# incluir ltatlimage.h gt//archivo de encabezado CImage
# incluir ltstring. gt
# incluir ltstdio.h gt
#Definir MAX_ARRAY 50
////Variables globales////
tchar sztlitlename[max _ array]= text(" juego "); ////Título
TCHAR SZ nombre de clase[MAX _ ARRAY]= TEXT(" SZ nombre de clase "); nombre
tchar szreclaerror[max _ array] = text("¡Error en el registro de la ventana!");
HDC BGbmpDC = NULL
hbit map bgb MP 1 = NULL;
HBITMAP BGbmp2 = NULL
Devolución de llamada LRESULT MyWndPoc(HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain(h instancia h instancia, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
HWND hWnd
Mensaje MSG;
/////Ventana de definición Clase ////
WNDCLASS wndclass
wnd clase cbclsextra = 0;
wnd clase cbwndextra = 0
wnd clase. . Fondo HBR =(HBRUSH)GetStockObject(BLACK _ BRUSH);
clase wnd. hcursor = cargar cursor (instancia h, FLECHA IDC). icon(h instancia, IDI_application);
clase wnd .h instancia = h instancia
wndclass.lpfnWndProc = MyWndPoc
clase wnd .lpsz nombre de clase = Nombre de clase SZ;
wndclass.lpszMenuName = NULL
clase wnd = CS_HREDRAW | CS_VREDRAW;
//// Registrar clase de ventana ////
Si (! registrar clase(amp; wndclass))
{
MessageBox(NULL, szReClaError, szClassName, MB_icon error);
}
/////Crear una clase de ventana////
hWnd = CreateWindo
w(szClassName,
szTitleName,
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
414,
460,
Vacío,
Vacío,
hInstancia,
NULL);
Ventana HDC DC = GetDC(hWnd);
BGbmpDC = CreateCompatibleDC(windowDC);
//bgb MP 1 = CreateCompatibleBitmap(windowDC, 414, 460);
bgb MP 2 =(mapa hbit)LoadImage(h instancia,MAKEINTRESOURCE(IDB_BG),IMAGE_BITMAP,0,0,
/* LR _ LOADFROMFILE | */LR _ CREATEDIBSECTION ); p> p>
//SelectObject(BGbmpDC, bgb MP 2);
//BitBlt(BGbmpDC, 0, 0, 414, 460, windowDC, 0, 0, SRCCOPY ); p>
////Mostrar ventana de actualización////
ShowWindow(hWnd, nShowCmd);
Ventana de actualización (hWnd);
// //Bucle de mensajes////
while (1)
{
if(PeekMessage(amp;messag,NULL,0,0, PM_REMOVE) )
{
if (WM_QUIT==messag.message)
{
PostQuitMessage(0);
Pausa;
}
Traducir mensaje(ampmessag);
enviar mensaje(amp;messag);
}
p>}
return(int)messag.wparam;
}
////Función de procedimiento de ventana/// /
Devolución de llamada LRESULT MyWndPoc(HWND hWnd, mensaje UINT, WPARAM wParam, LPARAM lParam)
{
HDC hdc
PAINTSTRUCT ps
Rectángulo RECT;
Cambiar(mensaje)
{
Caso WM_CREATE:
Romper; p>
Caso WM_PAINT:
hdc = comenzar pintura(hWnd amp; PS);
SelectObject(BGbmpDC, bgb MP 2); (hdc, 0, 0, 414, 460, BGbmpDC, 0, 0, SRCCOPY
Revestimiento final (hWnd y PS);
ReleaseDC (hWnd, hdc); /p>
Devuelve 0;
Interrupción;
Caso WM_KEYDOWN:
Cambiar (wParam)
{
Caso VK_numpa 1:
MessageBox(hWnd, szTitleName, szTitleName, MB_OK);
Romper
Caso VK_Jailbreak:
p>
PostQuitMessage(0);
Pausa;
}
Pausa;
Caso WM_DESTROY:
PostQuitMessage(0);
Interrupción;
Valor predeterminado:
Devolver DefWindowProc(hWnd, mensaje, wParam, lParam);
Descanso;
}
}