Форум программистов, компьютерный форум, киберфорум
Наши страницы

C++ и WinAPI

Войти
Регистрация
Восстановить пароль
 
Myth1324
#1

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

07.05.2011, 01:08. Просмотров 513. Ответов 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);
        }
Мучаюсь долго. Почему не работает? Если без условий сделать, то рисует. Как лучше сделать, если по другому делать как-то?
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.05.2011, 01:08
Здравствуйте! Я подобрал для вас темы с ответами на вопрос вопрос начинающего (C++ WinAPI):

Вопрос от начинающего - C++ WinAPI
скажи те пожалуйста какой принцип лежит в основе использования WinApi.... для создания окна мы используем 2 основные функции int...

Книга для начинающего - C++
Посоветуйте книгу для первокурсника по c++. препод посоветовал гебрерда шилдта "C++. Базовый курс". но сейчас не могу найти ее в продаже а...

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

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

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

вопрос по GUI - C++
Если я изучил с++, по книге(ещё не изучал) и вся книга про то как создавать консольные приложения, а я хочу научится писать windows...

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

Вопрос по PostMessage - C++ WinAPI
В продолжение темы http://www.cyberforum.ru/win-api/thread180256.html Этот факт нужен лишь тем, кто указанную тему читал. Тем, кто не...

Странный вопрос - C++
Здравствуйте, уважаемые! Я в очередной раз взялся за нейронные сети и в мою бедную голову въелся смешной вопрос. Как лучше организовать...

Вопрос NetBeans 7.1 - C++
добрый вечер. честно говоря не знал где создать тему, подумал что сюда.проблемой это назвать сложно, но глаз режет, может кто сталкивался,...

вопрос по libssh - C++
Подскажите пажалста, если кто сталкивался с библиотекой libssh. Допустим через эту либину я пересылаю архив на некое устройство...


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

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

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