proyecto
http://www.mediafire.com/?yd4vpb42j4p1pi6
winmain.cpp
Código:
//
// UTN FRGP
// 2011
// david_BS
// EMAIL: david_bs@live.com
//
//////////////////////////////////////////////////
//#define WINVER 0x0500 //WINVER as 0x0500 enables features specific to Win 98 and 2000
//#define VC_EXTRALEAN
#include <windows.h>
//gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib
/////////////////////////
// Globales
HWND EditControl1;
HWND EditControl2;
HWND EditControl3;
HWND StaticControl1;
const int ID_EDIT1=1, ID_EDIT2=2, ID_EDIT3=3, ID_EDIT4=4, ID_EDIT5=5;
const int ID_OK = 6;
const int ID_CANCEL = 7;
const int ID_LABEL1 = 0;
/////////////////////////////
void getCentradoGlobal(int vXY[2], int h, int w);
///////////////
// Controles de ventana
void RegistrarControlesDeVentanaPrincipal(HWND hWin)
{
static char* t1 = TEXT("Ingrese 3 numeros");
unsigned long EstiloHijo1 = WS_VISIBLE | WS_CHILD;
unsigned long EstiloHijo2 = WS_CHILD | WS_VISIBLE | WS_BORDER;
unsigned long EstiloHijo3 = WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON;
unsigned long EstiloHijo4 = WS_CHILD | WS_VISIBLE | LBS_NOTIFY | LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP;
long editstyle =WS_CHILD|WS_VISIBLE|WS_BORDER|WS_TABSTOP;//|ES_AUTOHSCROLL;//|WS_TABSTOP;
int offs = 30;
int X=20;
int Y=10;
int W=80;
int H=25;
StaticControl1 = CreateWindow( TEXT("static"),
t1,
EstiloHijo1,
20,10,180,20,
hWin,
(HMENU)ID_LABEL1,
NULL,
NULL);
EditControl1 = CreateWindow( TEXT("Edit"),
NULL,
editstyle,
X,
Y+20,
W,
H,
hWin,
(HMENU)ID_EDIT1,
NULL,
NULL);
EditControl2 = CreateWindow( TEXT("Edit"),
NULL,
editstyle,
X,
Y+20+(offs*1),
W,
H,
hWin,
(HMENU)ID_EDIT2,
NULL,
NULL);
EditControl2 = CreateWindow( TEXT("Edit"),
NULL,
editstyle,
X,
Y+20+(offs*2),
W,
H,
hWin,
(HMENU)ID_EDIT3,
NULL,
NULL);
CreateWindow( TEXT("button"),
TEXT("Sumar"),
EstiloHijo1,
X,130,60,H,
hWin,
(HMENU) ID_OK,
NULL,
NULL);
CreateWindow( TEXT("button"),
TEXT("Salir"),
EstiloHijo1,
X+70,130,50,H,
hWin,
(HMENU)ID_CANCEL,
NULL,
NULL);
}
//////////
// CallBack
INT_PTR CALLBACK WinProc(HWND hWin, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch(uMsg)
{
case WM_CREATE:
{
RegistrarControlesDeVentanaPrincipal(hWin);
}
break;
case WM_KEYDOWN:
{
if(wParam==VK_TAB){
}
}
break;
case WM_COMMAND:
{
switch(LOWORD(wParam))
{
case ID_OK:
{
char chBuffer1[128];
memset(chBuffer1,0,sizeof(chBuffer1));
GetDlgItemText( hWin,ID_EDIT1, chBuffer1, sizeof( chBuffer1 ) );
char chBuffer2[128];
memset(chBuffer2,0,sizeof(chBuffer2));
GetDlgItemText( hWin,ID_EDIT2, chBuffer2, sizeof( chBuffer2 ) );
int i_res = atoi(chBuffer1)+atoi(chBuffer2);
char ch_res[128];
itoa(i_res,ch_res,10);
HWND Edit3 = GetDlgItem(hWin,ID_EDIT3);
SendMessage(Edit3 , WM_SETTEXT, 0, (LPARAM)ch_res);
}
break;
case ID_CANCEL:
{
SendMessage(hWin, WM_CLOSE, 0, 0);
return TRUE;
}
break;
}
}
break;
case WM_CLOSE:
{
DestroyWindow(hWin);
return TRUE;
}
/////////////////////////////
case WM_DESTROY:
{
PostQuitMessage(0);
return TRUE;
}
default:
return DefWindowProc(hWin,uMsg,wParam,lParam);
}
return 0;
//return DefWindowProc(hWin,uMsg,wParam,lParam);
}
////////////
// Clase de ventana
void RegistrarClaseVentana(WNDCLASS* wc)
{
// HICON hIconImg = (HICON)LoadImage(NULL, "BS.ico", IMAGE_ICON, 542, 449, LR_LOADFROMFILE);
wc->lpszClassName = TEXT("Window");
wc->hInstance = GetModuleHandle(NULL);
//wc->hbrBackground = GetSysColorBrush(COLOR_3DFACE);
wc->hbrBackground = (HBRUSH)(COLOR_BTNFACE+1);
wc->lpfnWndProc = (WNDPROC)WinProc;
wc->style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC;
wc->cbClsExtra = 0;
wc->cbWndExtra = 0;
//wc->hIcon = LoadIcon(NULL,"IDI_ICON1");
wc->hIcon = LoadIcon(NULL,"IDI_WINLOGO");
wc->hCursor = LoadCursor(NULL,IDC_ARROW);
wc->lpszMenuName = NULL;
RegisterClass((struct tagWNDCLASSA *)wc);
}
//////////////
// Punto de entrada ('WinMain' : must be '__stdcall')
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE h0, LPSTR lpCmdLine, int nCmdShow){
HWND hWin;
WNDCLASS wc = {0};
RegistrarClaseVentana(&wc);
int ancho=250;
int alto=200;
int dim[2];
getCentradoGlobal(dim, ancho, alto);
unsigned long Estilo1 = WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX;
hWin = CreateWindow( wc.lpszClassName,
"GUI32",
Estilo1,
dim[0],
dim[1],
ancho,
alto,
NULL,
NULL,
hInst,
NULL);
// ShowWindow(hWin,nCmdShow);
ShowWindow(hWin, SW_SHOWDEFAULT);
//UpdateWindow(hWin);
MSG msg;
while(GetMessage(&msg, NULL, 0, 0)>0) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
////////
void getCentradoGlobal(int vXY[2], int h, int w)
{
RECT rcP;
GetWindowRect(GetDesktopWindow(), &rcP);
int centerX = (rcP.right/2)-(w/2)-(w/4);
int centerY = (rcP.bottom/2)-(h/2)+(h/6);
vXY[0]=centerX;
vXY[1]=centerY;
}