Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ и WinAPI
Войти
Регистрация
Восстановить пароль
 
Myth1324
0 / 0 / 1
Регистрация: 03.05.2011
Сообщений: 2
#1

вопрос начинающего - C++ WinAPI

07.05.2011, 01:08. Просмотров 526. Ответов 2
Метки нет (Все метки)

Цель: В зависимости от значения переменной flag_kvadr отобразить в клиентской области главного окна либо красный, либо синий квадрат. flag_kvadr интовая переменная, объявлена глобально, изменяет свое значение в зависимости от того, выбрал ли пользователь один из пунктов меню другого (не главного) окна. Вот собственно код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
case WM_PAINT:
        {
        hdc = BeginPaint(hWnd, &ps);
            RECT r; 
        r.left=100; 
        r.top=100; 
        r.right=250;
        r.bottom=250;
        if (flag_kvadr==1) 
        FillRect(hdc, &r, (HBRUSH)CreateSolidBrush(RGB(255,0,0)));
 
        if (flag_kvadr==0) 
        FillRect(hdc, &r, (HBRUSH)CreateSolidBrush(RGB(0,0,255)));
 
        EndPaint(hWnd, &ps);
        }
Мучаюсь долго. Почему не работает? Если без условий сделать, то рисует. Как лучше сделать, если по другому делать как-то?
http://www.cyberforum.ru/win-api/thread288166.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.05.2011, 01:08
Я подобрал для вас темы с готовыми решениями и ответами на вопрос вопрос начинающего (C++ WinAPI):

Книга для начинающего
Посоветуйте книгу для первокурсника по c++. препод посоветовал гебрерда шилдта...

Подскажите пожалуйста, что нибудь серьезное для начинающего программиста
Подскажите пожалуйста, что нибудь серьезное для начинающего программиста, чтобы...

Однострочный редактор текста Edit не редактирует текст. И несколько вопр-сов от начинающего по CreateWindowEx
Здравствуйте. Задача: создать в приложении редактор Edit, считывать из него в...

вопрос
Есть код программы , в конце программы должен запрашеватся вопрос , продолжить...

Вопрос начинающего
Добрый день! Прошу помощи у знатоков. Я сейчас только изучаю perl по книге...

2
bigredcat
369 / 316 / 32
Регистрация: 24.02.2011
Сообщений: 1,512
Записей в блоге: 1
07.05.2011, 07:10 #2
Все у вас должно работать (правда, не проверял), просто вы не обновляете окно после изменения значения этой переменной. Попробуйте свернуть-развернуть его (или перекрыть другим окном) и цвет должен поменяться. Добавьте в обработчик команды меню, которая меняет эту вашу переменную, например InvalidateRect и UpdateWindow.
Но у вас проблема с утечкой, каждый раз создаете кисть, но не удаляете ее.
А вообще я бы создал совместимый контекст в памяти. В обработчике меню рисовал бы в нем, что нужно. А в WM_PAINT использовал BitBlt
1
Myth1324
0 / 0 / 1
Регистрация: 03.05.2011
Сообщений: 2
07.05.2011, 11:33 #3
Спасибо огромное, помогло
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.05.2011, 11:33
Привет! Вот еще темы с решениями:

Вопрос начинающего
Добрый вечер не не могли бы мне помочь. Я разработал систему терминального...

Вопрос начинающего
Здравствуйте. Мне сейчас 16 лет и в сентябре я пойду в 11 класс (я школота). В...

Вопрос начинающего
Что означают эти значки: 1) :: 2) -> где они используються и зачем они...

Вопрос от начинающего
Доброго вечера господа. Я только недавно начал учиться программировать на...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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