#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);
}