Ellipse(hdc, rect.left,rect.top,rect.right,rect.bottom);


//Arquivo: main.c

#include <windows.h>
#include "resource.h"

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
BOOL    CALLBACK AboutDlgProc(HWND, UINT, WPARAM, LPARAM);
LRESULT CALLBACK EllipPushWndProc(HWND, UINT, WPARAM, LPARAM);

int WINAPI WinMain(HINSTANCE hI,HINSTANCE hPI, PSTR szCL,int iCS) {
    static TCHAR szAppName[] = TEXT("About3");
    MSG          msg;
    HWND         hwnd;
    WNDCLASS     wndclass;

    HBITMAP      imagem;
    HBRUSH       hBrush;

    imagem = LoadBitmap(hI, IMAGEM);
    hBrush  = CreatePatternBrush(imagem);
    DeleteObject(imagem);

    wndclass.style         = CS_HREDRAW | CS_VREDRAW;
    wndclass.lpfnWndProc   = WndProc;
    wndclass.cbClsExtra    = 0;
    wndclass.cbWndExtra    = 0;
    wndclass.hInstance     = hI;
    wndclass.hIcon         = LoadIcon(hI, szAppName);
    wndclass.hCursor       = LoadCursor(NULL, IDC_ARROW);
    wndclass.hbrBackground = hBrush;
    wndclass.lpszMenuName  = szAppName;
    wndclass.lpszClassName = szAppName;
    if(!RegisterClass(&wndclass)) {
        MessageBox(NULL,TEXT("Error!"),szAppName,MB_ICONERROR);
        return 0;
    }
    wndclass.style         = CS_HREDRAW | CS_VREDRAW;
    wndclass.lpfnWndProc   = EllipPushWndProc;
    wndclass.cbClsExtra    = 0;
    wndclass.cbWndExtra    = 0;
    wndclass.hInstance     = hI;
    wndclass.hIcon         = NULL;
    wndclass.hCursor       = LoadCursor(NULL, IDC_ARROW);
    wndclass.hbrBackground = (HBRUSH) (COLOR_BTNFACE + 1);
    wndclass.lpszMenuName  = NULL;
    wndclass.lpszClassName = TEXT("EllipPush");
    RegisterClass(&wndclass);

    hwnd = CreateWindow(
        szAppName,TEXT("EndDialog(hDlg, 0);"),WS_OVERLAPPEDWINDOW,
        120,100,500,300,
        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 wParam,LPARAM lParam) {
    static HINSTANCE hInstance;
    switch(msg) {
        case WM_CREATE:
            hInstance = ((LPCREATESTRUCT) lParam)->hInstance;
            return 0;
        case WM_COMMAND:
            switch(LOWORD(wParam)) {
                case IDM_APP_ABOUT:
                    DialogBox(hInstance,TEXT("AboutBox"), hwnd, AboutDlgProc);
                    return 0;
            }
            break;
        case WM_DESTROY:
            PostQuitMessage(0);
            return 0;
    }
    return DefWindowProc(hwnd, msg, wParam, lParam);
}

BOOL CALLBACK AboutDlgProc(HWND hDlg, UINT msg,WPARAM wParam, LPARAM lParam) {
    switch(msg) {
        case WM_INITDIALOG:
            return TRUE;
        case WM_COMMAND:
            switch(LOWORD(wParam)) {
                case IDOK:
                    EndDialog(hDlg, 0);
                    return TRUE;
            }
            break;
    }
    return FALSE;
}

LRESULT CALLBACK EllipPushWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) {
    TCHAR       szText[40];
    HBRUSH      hBrush;
    HDC         hdc;
    PAINTSTRUCT ps;
    RECT        rect;
    switch(msg) {
        case WM_PAINT:
            GetClientRect(hwnd, &rect);
            GetWindowText(hwnd, szText, sizeof(szText));

            hdc = BeginPaint(hwnd,&ps);

            hBrush = CreateSolidBrush(GetSysColor(COLOR_WINDOW));
            hBrush = (HBRUSH)SelectObject(hdc, hBrush);
            SetBkColor(hdc, GetSysColor(COLOR_WINDOW));
            SetTextColor(hdc, GetSysColor(COLOR_WINDOWTEXT));

            Ellipse(hdc, rect.left,rect.top,rect.right,rect.bottom);
            DrawText(hdc,szText, -1,&rect,DT_SINGLELINE|DT_CENTER|DT_VCENTER);
            DeleteObject(SelectObject(hdc, hBrush));
            EndPaint(hwnd, &ps);
            return 0;
        case WM_KEYUP:
            if(wParam != VK_SPACE)
                break;
        case WM_LBUTTONUP:
            SendMessage(GetParent(hwnd),WM_COMMAND,GetWindowLong(hwnd,GWL_ID),(LPARAM)hwnd);
            return 0;
    }
    return DefWindowProc(hwnd, msg, wParam, lParam);
}





//Arquivo: resource.h

#define IDM_APP_ABOUT                   40001
#define IDC_STATIC                      1
#define IMAGEM                          89




//Arquivo .rc

#include "resource.h"
#include "afxres.h"

ABOUTBOX DIALOG DISCARDABLE  32, 32, 220, 100
STYLE DS_MODALFRAME | WS_POPUP
FONT 14, "Arial"
BEGIN
    CONTROL         "Sair",        IDOK,"EllipPush",WS_GROUP|WS_TABSTOP,73,79,32,14
    ICON            "icon1.ico",   IDC_STATIC,                           7, 7,20,20
    CTEXT           "João 1:34",   IDC_STATIC,                          40,12,100,8
    CTEXT           "E eu vi e tenho testificado que este é o Filho de Deus.",IDC_STATIC, 7,40,166,8
    CTEXT "Santifica-os na tua verdade; a tua palavra é a verdade. João 17:17",IDC_STATIC,-3,52,220,8
END

ABOUT3 MENU DISCARDABLE
BEGIN
    POPUP "&Ajuda"
    BEGIN
        MENUITEM "Item de Menu",            IDM_APP_ABOUT
    END
END

ABOUT3                  ICON    DISCARDABLE     "icon1.ico"

IMAGEM                  BITMAP  DISCARDABLE     "image.bmp"

Comentários