Sábado 14 de Diciembre de 2024, 17:50
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
C/C++
»
Visual C++
(Moderador:
Eternal Idol
) »
App. Winapi
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: App. Winapi (Leído 1030 veces)
shakka
Miembro HIPER activo
Mensajes: 679
Nacionalidad:
App. Winapi
«
en:
Domingo 20 de Noviembre de 2005, 21:21 »
0
Quiero hacer una app. que muestre una ventana de presentacion (Splash Screen) solamente, pero por el momento no he podido hacer que al crear la ventana principal "Tabix" me muestre la de presentacion "Splash".
Que puede ser que no me muestre esta segunda ventana?
/*==( Tabix.cpp )=====================================*/
Código: Text
#include "tabix.h"
int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int);
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
HWND hWndTabix;
WNDCLASSEX xCTabix;
WNDCLASSEX xCSplash;
MSG message;
xCTabix.cbSize=sizeof(WNDCLASSEX);
xCTabix.style=CS_HREDRAW|CS_VREDRAW;
xCTabix.lpfnWndProc=TabixProc;
xCTabix.cbClsExtra=0;
xCTabix.cbWndExtra=0;
xCTabix.hInstance=hInstance;
xCTabix.hIcon=LoadIcon(NULL,IDI_APPLICATION);
xCTabix.hCursor=LoadCursor(NULL,IDC_ARROW);
xCTabix.hbrBackground=(HBRUSH) COLOR_BACKGROUND;
xCTabix.hIconSm=LoadIcon(NULL,IDI_APPLICATION);
xCTabix.lpszClassName=szCTabix;
xCTabix.lpszMenuName=NULL;
if (!RegisterClassEx(&xCTabix))
return (FALSE);
xCSplash.cbSize=sizeof(WNDCLASSEX);
xCSplash.style=CS_DBLCLKS;
xCSplash.lpfnWndProc=SplashProc;
xCSplash.cbClsExtra=0;
xCSplash.cbWndExtra=0;
xCSplash.hInstance=hInstance;
xCSplash.hIcon=LoadIcon(NULL,IDI_APPLICATION);
xCSplash.hCursor=LoadCursor(NULL,IDC_ARROW);
xCSplash.hbrBackground=(HBRUSH) COLOR_BACKGROUND;
xCSplash.hIconSm=LoadIcon(NULL,IDI_APPLICATION);
xCSplash.lpszClassName=szCSplash;
xCSplash.lpszMenuName=NULL;
if (!RegisterClassEx(&xCSplash))
return (FALSE);
hWndTabix=CreateWindowEx(
0,
szCTabix,
szTabixTitle,
WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_THICKFRAME|WS_MINIMIZEBOX,
CW_USEDEFAULT,
CW_USEDEFAULT,
512,
256,
NULL,
NULL,
hInstance,
NULL);
if (!hWndTabix)
return (FALSE);
ShowWindow(hWndTabix,nCmdShow);
UpdateWindow(hWndTabix);
while(GetMessage(&message,NULL,0,0))
{
TranslateMessage(&message);
DispatchMessage(&message);
}
return (message.wParam);
}
/*==( Tabix.h )=====================================*/
Código: Text
#include <windows.h>
LRESULT CALLBACK TabixProc(HWND,UINT,WPARAM,LPARAM);
LRESULT CALLBACK SplashProc(HWND,UINT,WPARAM,LPARAM);
void ShowBitmap(HDC,HWND,HBITMAP,int,int);
char szCTabix[]="CTabix";
char szCSplash[]="CSplash";
char szTabixTitle[]="Tabix Generador de tablas HTML";
char szSplashTitle[]="Tabix Generador de tablas HTML";
LRESULT CALLBACK TabixProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)
{
HWND hWndSplash;
switch (message)
{
case WM_CREATE:
hWndSplash=CreateWindowEx(
WS_EX_DLGMODALFRAME,
szCSplash,
szSplashTitle,
WS_POPUP,
CW_USEDEFAULT,
CW_USEDEFAULT,
400,
230,
hWnd,
NULL,
GetModuleHandle(NULL),
NULL);
break;
case WM_CLOSE:
DestroyWindow(hWnd);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return(DefWindowProc(hWnd,message,wParam,lParam));
}
return (0);
}
LRESULT CALLBACK SplashProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)
{
HDC hDC;
PAINTSTRUCT ps;
RECT rect;
static HBITMAP hBitmap;
char szMessage[120];
switch (message)
{
case WM_CREATE:
GetWindowRect(hWnd,&rect);
hBitmap=(HBITMAP) LoadImage(NULL,"Tabix.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
ShowWindow(hWnd,SW_SHOW);
UpdateWindow(hWnd);
break;
case WM_PAINT:
hDC=BeginPaint(hWnd,&ps);
ShowBitmap(hDC,hWnd,hBitmap,400,255);
EndPaint(hWnd,&ps);
break;
case WM_SIZE:
MoveWindow(hWnd,200,200,400,230,FALSE);
wsprintf(
szMessage,
"Resolucion: %d x %d, Ventana: left=%i,top=%i,right=%i,bottom=%i",GetSystemMetrics(SM_CXSCREEN),
GetSystemMetrics(SM_CYSCREEN),rect.left,rect.top,rect.right,rect.bottom);
MessageBox(NULL,szMessage,szSplashTitle,MB_OK);
break;
case WM_CLOSE:
SendMessage(hWnd,WM_DESTROY,0,0);
break;
case WM_DESTROY:
DeleteObject(hBitmap);
PostQuitMessage(0);
break;
}
return 0;
}
void ShowBitmap(HDC hDC,HWND hWnd,HBITMAP hBitmap,int iWidth,int iHeight)
{
HDC hBitmapDC;
RECT rect;
hBitmapDC=CreateCompatibleDC(hDC);
SelectObject(hBitmapDC,hBitmap);
GetClientRect(hWnd,&rect);
BitBlt(hDC,0,0,iWidth,iHeight,hBitmapDC,0,0,SRCCOPY);
DeleteDC(hBitmapDC);
}
Tweet
blog
http://blog.mbrenes.com
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
C/C++
»
Visual C++
(Moderador:
Eternal Idol
) »
App. Winapi