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

Изобразить этот эллипс, чтобы он мигал — желтый/черный - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Почему программа себя странно ведет: зацикливается после ввода значений? http://www.cyberforum.ru/cpp-beginners/thread1177551.html
Зацикливается после воода значений. Подскажите пожалуйста в чем может быть проблема. #include <fstream> #include <iostream> #include "Library.h" using namespace std; void addbook() { book one;
C++ Можно ли создать список массива строк и если да, то как? Заранее прошу прощения если вопрос глупый, но ответа на него я не нашел. Можно ли создать список массива строк и если да то как? http://www.cyberforum.ru/cpp-beginners/thread1177548.html
C++ Как правильно словить исключение не найденного элемента
Доброго вечера! Не могу вьехать, как правильно словить исключение не найденного элемента: string ToDelete = View.DeleteProduct(); vector<string>::iterator DelIT; try { DelIT = find(this->Model.Products.begin(),this->Model.Products.end(),string(ToDelete)); cout << *DelIT;
Написать программу сложения двух матриц одинакового размера C++
Помогите пожалуйста, чем быстрей, тем лучше! Необходимо написать программу сложения двух матриц одинакового размера. Я написал, но с увеличением количества процессоров скорость увеличивается. Как это исправить? #include <stdio.h> #include <mpi.h> #define M 110 #define N 110 int A, B, C; int main(int argc, char* argv) {
C++ Разработка класса String http://www.cyberforum.ru/cpp-beginners/thread1177509.html
Нужна помощь, вот задание. Не сильно разбираюсь в ООП, поэтому прошу помощи у вас. Разработать класс String определив для него методы: • копирования строк, реализовав оператор = ; • поиска подстроки; • слияния строк, реализовав операторы += и + ; • эквивалентности строк, набор операторов == и !=; • определения длины строки; • вывода в поток, << ; • ввода из потока >> ;
C++ Пакман на Си. Не могу реализовать корректное передвижение по массиву Пишу пакмана на экзамен по Си. Столкнулся с проблемой отображения приведения которое бегает за игроком. Проблема заключается в следующем: Есть текущая координата и координата на которую надо перейти приведению. При переходе я запоминаю содержимое координаты на которую надо перейти приведению. Перемещаю приведение на координату на которую надо перейти приведению. А на предыдущее место ставлю... подробнее

Показать сообщение отдельно
Liquil
 Аватар для Liquil
213 / 198 / 31
Регистрация: 04.12.2013
Сообщений: 883
16.05.2014, 01:18     Изобразить этот эллипс, чтобы он мигал — желтый/черный
Здравствуйте, вот есть код, задача: изобразить этот эллипс, чтобы он мигал - желтый/черный, в общем такая мигающая "растровая" лампочка. Фрагмент кода предоставлен ниже, попробовал сделать этот через цикл - если счетчик четный - 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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#include <windows.h>
#include <iostream>
#include <cstring>
#include <ctype.h>
#include <cstdlib>
#include <conio.h>
 
HDC hdc;
PAINTSTRUCT ps;
POINT point;
COLORREF rgb;
HPEN pen;
HBRUSH hbr;
int N=5;
int i;
 
LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam) {
    
    switch(Message) {
        
        case WM_DESTROY: {
            PostQuitMessage(0);
            break;
        }
        case WM_PAINT: { //рисуем окно
        
            hdc = BeginPaint(hwnd, &ps);
            //рисуем 
            
        //вот тут начинаются неудачи
 
            for (i=0; i<N; i++)
             if (i%2<1) 
              {
              rgb = RGB(255,255,0); 
              pen = CreatePen(PS_SOLID,1,rgb);
              hbr = CreateSolidBrush(rgb);
              SelectObject(hdc, pen); // выбор пера
              SelectObject(hdc, hbr); // выбор кисти
              Ellipse(hdc, 150, 5, 350, 140); 
              DeleteObject(hbr);
              DeleteObject(pen);
              getch();
              }
               else {rgb = RGB(0,0,0); 
                     pen = CreatePen(PS_SOLID,1,rgb);
                     hbr = CreateSolidBrush(rgb);
                     SelectObject(hdc, pen); // выбор пера
                     SelectObject(hdc, hbr); // выбор кисти
                     Ellipse(hdc, 150, 5, 350, 140); 
                     DeleteObject(hbr);
                     DeleteObject(pen);
                     getch();
                    }       
            
            
            // освобождаем дескрипторы
            EndPaint(hwnd, &ps);
            
        
            break;
        }
        
        
        default:
            return DefWindowProc(hwnd, Message, wParam, lParam);
    }
    return 0;
}
 
 
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
    WNDCLASSEX wc; 
    HWND hwnd; 
    MSG Msg; 
 
    
    memset(&wc,0,sizeof(wc));
    wc.cbSize        = sizeof(WNDCLASSEX);
    wc.lpfnWndProc   = WndProc; 
    wc.hInstance     = hInstance;
    wc.hCursor       = LoadCursor(NULL, IDC_ARROW);
    
    
    wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
    wc.lpszClassName = "WindowClass";
    wc.hIcon         = LoadIcon(NULL, IDI_APPLICATION); 
        wc.hIconSm       = LoadIcon(NULL, IDI_APPLICATION); 
 
    if(!RegisterClassEx(&wc)) {
        MessageBox(NULL, "Window Registration Failed!","Error!",MB_ICONEXCLAMATION|MB_OK);
        return 0;
    }
 
    hwnd = CreateWindowEx(WS_EX_CLIENTEDGE,"WindowClass","Пример работы с канвой",WS_VISIBLE|WS_OVERLAPPEDWINDOW,
        CW_USEDEFAULT, 
        CW_USEDEFAULT, 
        640, 
        480, 
        NULL,NULL,hInstance,NULL);
 
    if(hwnd == NULL) {
        MessageBox(NULL, "Window Creation Failed!","Error!",MB_ICONEXCLAMATION|MB_OK);
        return 0;
    }
 
 
    while(GetMessage(&Msg, NULL, 0, 0) > 0) { 
        TranslateMessage(&Msg); 
        DispatchMessage(&Msg); 
        
    }
    return Msg.wParam;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru