Форум программистов, компьютерный форум CyberForum.ru

Рисование в окне - C++

Восстановить пароль Регистрация
 
Алена5
2 / 2 / 0
Регистрация: 17.05.2010
Сообщений: 68
14.12.2010, 18:39     Рисование в окне #1
Написала програмку
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#include<windows.h>
#include<tchar.h>
static int x=0, y=0;
HINSTANCE hI;
int Flag;
LRESULT CALLBACK WndProc(HWND hWnd, UINT mess, WPARAM wP, LPARAM lP);
INT CALLBACK WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR lpCmdline, int nCmdShow)
{
    hI=hInst;
    WNDCLASSEX wc;
    wc.cbSize = sizeof(WNDCLASSEX);
    wc.style = CS_HREDRAW | CS_VREDRAW;
    wc.lpfnWndProc = WndProc;
    wc.cbClsExtra = 0;
    wc.cbWndExtra = 0;
    wc.hInstance = hInst;
    wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
    wc.hCursor = LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
    wc.lpszMenuName = NULL;
    wc.lpszClassName = _TEXT("Клас1");
    wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
    if(!RegisterClassEx(&wc))
        MessageBox(NULL, _TEXT("no class has been registered"),_TEXT("cdfv"), NULL);
    HWND hWnd;
    hWnd = CreateWindowEx(0, _TEXT("Клас1"), _TEXT("Окно"), WS_OVERLAPPEDWINDOW, 10, 10, 500, 300, NULL, NULL, hInst, NULL);
    ShowWindow(hWnd, nCmdShow);
    MSG msg;
    while(GetMessage(&msg, NULL, 0, 0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return msg.wParam;
}
LRESULT CALLBACK WndProc(HWND hWnd, UINT mess, WPARAM wP, LPARAM lP)
{
    PAINTSTRUCT ps;
    RECT rect;
    HBRUSH hBrush;
    HPEN hPen;
    HFONT hFont;
    HDC hdc;
    switch(mess)
    {
    case WM_DESTROY: {PostQuitMessage(0); break;}
    case WM_PAINT: {
        hdc=BeginPaint(hWnd,&ps);
        Ellipse(hdc,x,y,x+100,y+100);
        EndPaint(hWnd,&ps);
        break;
                   }
    case WM_LBUTTONDOWN:
        {
            x=LOWORD(lP);
            y=HIWORD(lP);
            InvalidateRect(hWnd,0,1);
            break;
 
        }
    default: return DefWindowProc(hWnd, mess, wP, lP);
    }
    return 0;
}
но при нажатии левой кнопки мыши InvalidateRect(hWnd,0,1) - перерисовывает все окно вместе с эллипсом, а мне надо чтобы эллипс дорисовывался в определенной точке окна.
Подскажите пожалуйста нужную функцию.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.12.2010, 18:39     Рисование в окне
Посмотрите здесь:

рисование в с++ C++
C++ Рисование
Создание объектов в окне C++
C++ Рисование в С++
Рисование в с++ :) C++
C++ ListBox на чужем окне
Рисование в С++ C++
Рисование графики в окне C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 21:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru