Somatório com a bioblioteca windows.h

#if defined(UNICODE) && !defined(_UNICODE)
#define _UNICODE
#elif defined(_UNICODE) && !defined(UNICODE)
#define UNICODE
#endif
#include <tchar.h>
#include <windows.h>
#include "resource.h"
#define ID_BUTTON 1
static HWND num1, ResSomatorio, Lista;
LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);
void addMenus(HWND);
HMENU MenuPrincipal;
TCHAR szClassName[ ] = _T("CodeBlocksWindowsApp");
int WINAPI WinMain(HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nCmdShow) {
HWND hwnd;
MSG messages;
WNDCLASSEX wincl;
wincl.hInstance = hThisInstance;
wincl.lpszClassName = szClassName;
wincl.lpfnWndProc = WindowProcedure;
wincl.style = CS_DBLCLKS;
wincl.cbSize = sizeof(WNDCLASSEX);
wincl.hIcon = LoadIcon (hThisInstance, IDI_ICON);
wincl.hIconSm = LoadIcon (NULL, IDI_ICON);
wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
wincl.lpszMenuName = NULL;
wincl.cbClsExtra = 0;
wincl.cbWndExtra = 0;
wincl.hbrBackground = GetSysColorBrush(COLOR_3DFACE);
if (!RegisterClassEx(&wincl)) {
return 0;
}
hwnd = CreateWindowEx (
0, szClassName, _T("Calculo do Somatorio em C"), WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT, 500, 200,
HWND_DESKTOP, NULL, hThisInstance, NULL
);
ShowWindow (hwnd, nCmdShow);
while (GetMessage (&messages, NULL, 0, 0)) {
TranslateMessage(&messages);
DispatchMessage(&messages);
}
return messages.wParam;
}
LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) {
switch (message) {
case WM_CREATE:
addMenus(hwnd);
CreateWindow(
TEXT("static"),TEXT("Somatorio de 4 = 1+2+3+4 = 10"),WS_VISIBLE | WS_CHILD,
30, 20, 480, 20,
hwnd, NULL, NULL, NULL
);
num1 = CreateWindow(
TEXT("edit"), TEXT(""), WS_VISIBLE | WS_CHILD | WS_BORDER,
30, 50, 80, 20,
hwnd, NULL, NULL, NULL
);
CreateWindow(
TEXT("button"), TEXT("Calcular"), WS_VISIBLE | WS_CHILD | WS_BORDER,
220, 50, 80, 20,
hwnd, (HMENU) ID_BUTTON, NULL, NULL
);
CreateWindow(
TEXT("static"), TEXT("Codigo Fonte: \nhttps://cgllp-mz.blogspot.com"),
WS_VISIBLE | WS_CHILD,
30, 90, 320, 40,
hwnd, NULL, NULL, NULL
);
ResSomatorio = CreateWindow(
TEXT("edit"), TEXT(""), WS_VISIBLE | WS_CHILD | WS_BORDER,
320, 50, 80, 20,
hwnd, NULL, NULL, NULL
);
Lista = CreateWindow( /**static HWND Lista -> Declarado No escopo*/
"combobox", NULL, WS_CHILD|WS_TABSTOP|WS_VISIBLE|CBS_DROPDOWNLIST|CBS_SORT|WS_VSCROLL,
310, 90, 95, 150,
hwnd, NULL, NULL, NULL
);
SendMessage(Lista, CB_ADDSTRING, 0, (LPARAM)"Inscreva-se");
SendMessage(Lista, CB_ADDSTRING, 0, (LPARAM)"Curta");
SendMessage(Lista, CB_ADDSTRING, 0, (LPARAM)"Compartilhe");
break;
case WM_COMMAND:
if(LOWORD(wParam)==ID_BUTTON) {
unsigned long somatorio(int n) {
int i, x;
for(i=1, x=0; i<=n; i++) {
x = x+i;
}
return (x);
}
int n1 = GetWindowTextLength(num1)+1;
static char t1[40];
GetWindowText(num1, t1, n1);
int resultado, valor = atoi(t1);
resultado = somatorio(valor);
char tamanho[40];
itoa(resultado, tamanho, 10);
SetWindowText(ResSomatorio, tamanho);
return 0;
}
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc (hwnd, message, wParam, lParam);
}
return 0;
}
void addMenus(HWND hwnd) {
MenuPrincipal = CreateMenu();
AppendMenu(MenuPrincipal, MF_STRING, NULL, "Arquivo");
AppendMenu(MenuPrincipal, MF_STRING, NULL, "Editar");
AppendMenu(MenuPrincipal, MF_STRING, NULL, "Copiar");
AppendMenu(MenuPrincipal, MF_STRING, NULL, "Desligar");
SetMenu(hwnd, MenuPrincipal);
}
Comentários
Postar um comentário