cxIcon = GetSystemMetrics(SM_CXICON); cyIcon = GetSystemMetrics(SM_CYICON);

#include <windows.h> #include "resource.h" LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); int WINAPI WinMain(HINSTANCE hI, HINSTANCE hPI, PSTR szCL, int iCS) { TCHAR szAppName[] = TEXT("Mais Sobre Ícones"); HWND hwnd; MSG msg; WNDCLASS wndclass; wndclass.style = CS_HREDRAW | CS_VREDRAW; wndclass.lpfnWndProc = WndProc; wndclass.cbClsExtra = 0; wndclass.cbWndExtra = 0; wndclass.hInstance = hI; wndclass.hIcon = LoadIcon(hI, MAKEINTRESOURCE(IDI_ICON)); wndclass.hCursor = LoadCursor(NULL, IDC_ARROW); wndclass.hbrBackground = (HBRUSH) WHITE_BRUSH; wndclass.lpszMenuName = NULL; wndclass.lpszClassName = szAppName; if(!RegisterClass(&wndclass)) { MessageBox(NULL, TEXT("Windows NT"), szAppName, MB_ICONERROR); return 0; } hwnd = CreateWindow( szAppName, TITULO, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 640, 320, NULL, NULL, hI, NULL ); ShowWindow(hwnd, iCS); UpdateWindow(hwnd); while(GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); FreeConsole(); } return msg.wParam; } LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp) { static HICON hIcon; static int cxIcon, cyIcon, cxClient, cyClient; HDC hdc; HINSTANCE hI; PAINTSTRUCT ps; int x, y; switch(msg) { case WM_CREATE: hI = ((LPCREATESTRUCT) lp)->hInstance; hIcon = LoadIcon(hI, MAKEINTRESOURCE(IDI_ICON)); cxIcon = GetSystemMetrics(SM_CXICON); cyIcon = GetSystemMetrics(SM_CYICON); CreateWindow( TEXT("static"), TEXTO, WS_VISIBLE | WS_CHILD, 0, 80, 440, 40, hwnd, NULL, NULL, NULL ); return 0; case WM_SIZE: cxClient = LOWORD(lp); cyClient = HIWORD(lp); return 0; case WM_PAINT: hdc = BeginPaint(hwnd, &ps); for(y=0; y<cyClient; y+=cyIcon) for(x=0; x<cxClient; x+=cxIcon) DrawIcon(hdc, x, y, hIcon); EndPaint(hwnd, &ps); return 0; case WM_DESTROY: PostQuitMessage(0); return 0; } return DefWindowProc(hwnd, msg, wp, lp); }
/******************* Arquivo: resource.h ************************/ #define IDI_ICON 101 #define TEXTO "Porque já o mistério da injustiça opera; somente há um que, agora, resiste até que do meio seja tirado;" #define TITULO "cxIcon = GetSystemMetrics(SM_CXICON); cyIcon = GetSystemMetrics(SM_CYICON);"
/********************** Arquivo: resource.rc ***********************/ #include "resource.h" #include "afxres.h" IDI_ICON ICON "project1.ico"

Comentários