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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Алена5
2 / 2 / 0
Регистрация: 17.05.2010
Сообщений: 68
#1

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

14.12.2010, 18:39. Просмотров 397. Ответов 0
Метки нет (Все метки)

Написала програмку
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++
можно ли рисовать в borland c++ (если можно то как)reen&quot;]

Рисование в с++ :) - C++
Здравствуйте! Задали задачку графического характера :) Только вот не получается решить :( #include&lt;dos.h&gt; #include&lt;iostream.h&gt; ...

Рисование в С++ - C++
Написал следующую программу на Турбо С++ 3.0: #include &lt;graphics.h&gt; #include &lt;stdlib.h &gt; #include &lt;stdio.h&gt; #include &lt;conio.h&gt;...

Рисование в С++ - C++
У кого есть какие примеры рисования в С++. Вот например мой, два эллипса с заливкой и фоном, реагируют на нажатия стрелок и двигаются по...

Рисование - C++
Здравствуйте..) Что - то обрыскивание интернета не привело меня к удовлетворяющим результатам по поводу рисования в консоли. У нас тут...

Рисование окружности - C++
Доброго времени суток. Подскажите пожалуйста алгоритмы которые позволяют нарисовать &quot;гладкую&quot; окружность. Нужно что бы получилось...

рисование в С++, классы - C++
Здравствуйте, нужна небольшая помощь, тема курсовой аквариум с движущимися в нем рыбками, так вот, можете объяснить как вообще это...

Рисование ромба - C++
Нужно нарисовать ромб используя символ * и цикл for. Ромб должен быть закрашен символами *. Как понимаю опять нужно использовать цикла for,...

Рисование фигур - C++
Добрый вечер. Нужна помощь с рисованием фигур. Дали задание нарисовать трехмерный куб, через 2 класса(один наследует второй). Не могу...

Рисование прямой - C++
Привет! Решил написать простую программу, которая делает вот что: вводятся координаты точек многоугольника, затем появляется окно, залитое...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru