Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/29: Рейтинг темы: голосов - 29, средняя оценка - 4.83
 Аватар для funk_ua
1 / 1 / 1
Регистрация: 27.08.2012
Сообщений: 54

Изменить цвет дочернего окна

19.02.2014, 14:44. Показов 5955. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Создаю дочерние окна таким образом:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#define ID_FIRSTCHILD   100
...
...
...
for (int i = 0; i < 5; i++)
        {      
                        WNDCLASS w;
                        memset(&w, 0, sizeof(WNDCLASS));
                        w.style = CS_HREDRAW | CS_VREDRAW;
                        w.lpfnWndProc = ChildProc;
                        w.hInstance = hinst;
                        w.hCursor=LoadCursor(NULL,IDC_ARROW);
                        w.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
                        w.lpszClassName = "ChildWClass";
                        RegisterClass(&w);
                        HWND child;
                        child=CreateWindow("ChildWClass",(LPCTSTR) NULL,WS_CHILD | WS_CAPTION | WS_BORDER | WS_SYSMENU,
                                        random(400),random(370),200,100,hwnd,
                                        (HMENU) (int) (ID_FIRSTCHILD + i),hinst,NULL);
                        ShowWindow(child,SW_NORMAL);
                        UpdateWindow(child);
                        UpdateWindow(hwnd);
}
Теперь нужно как-то через поток изменить цвет окон , примерно на такой цвет
C++
1
(COLOR_GRAYTEXT+13)
Насколько я понял делается это с помощью WM_PAINT. Но сколько документации не перечитал, так и не понял как такое можно реализовать.

Спасибо заранее за помощь
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.02.2014, 14:44
Ответы с готовыми решениями:

Изменить цвет окна
Скажите, как изменить цвет главного окна программы и как изменить цвет кнопки расположенной на главном окне. Чтоб, когда я наводил курсор...

Изменить цвет окна
парни, я гуглил, честно - замучался, объясните как мне цвет окна поменять! (например красным его выставить) ..... case...

Как изменить цвет рамки окна?
Всем привет!!! Подскажите как изменить цвет рамки окна?

10
 Аватар для BeginerMan
51 / 50 / 14
Регистрация: 17.11.2012
Сообщений: 427
19.02.2014, 17:10
Как на счёт w.hbrBackground ???
0
 Аватар для funk_ua
1 / 1 / 1
Регистрация: 27.08.2012
Сообщений: 54
19.02.2014, 18:14  [ТС]
Цитата Сообщение от BeginerMan Посмотреть сообщение
Как на счёт w.hbrBackground ???
Да! Ток как это заюзать в потоке?
0
 Аватар для Izual
143 / 122 / 21
Регистрация: 13.11.2012
Сообщений: 1,564
20.02.2014, 18:32
Цитата Сообщение от funk_ua Посмотреть сообщение
Да! Ток как это заюзать в потоке?
А причём тут пототок?
0
 Аватар для funk_ua
1 / 1 / 1
Регистрация: 27.08.2012
Сообщений: 54
20.02.2014, 22:06  [ТС]
Цитата Сообщение от Izual Посмотреть сообщение
А причём тут пототок?
Задание такое
0
 Аватар для Izual
143 / 122 / 21
Регистрация: 13.11.2012
Сообщений: 1,564
20.02.2014, 23:20
Поток - createthread(функция)
0
 Аватар для funk_ua
1 / 1 / 1
Регистрация: 27.08.2012
Сообщений: 54
21.02.2014, 00:51  [ТС]
Это я знаю, создал так поток:
C++
1
CreateThread(0, 0, counter, 0, 0, 0);
Хочу узнать что в самом потоке нужно писать чтобы поменять w.hbrBackground дочерних окон
0
 Аватар для Izual
143 / 122 / 21
Регистрация: 13.11.2012
Сообщений: 1,564
21.02.2014, 14:37
Вы бы корректно и полностью задание озвучили.
А вообще, какое то бредовое задание. Зачем потоку вообще подобное делать, если за цвет как выше было показао отвечает сам WM_CREATE(или WM_INITDIALOG)... какой то реально бред, если они хотели чтобы вы научились работать с потоками, то данное задание имхо не лучший пример, мало того что безполезный, так ещё и глупый. Мне кажется вам надо погуглить изменение флагов класса окна... а там уже может что то и получится
1
 Аватар для funk_ua
1 / 1 / 1
Регистрация: 27.08.2012
Сообщений: 54
23.02.2014, 13:40  [ТС]
Спасибо. Решил уже
0
 Аватар для Izual
143 / 122 / 21
Регистрация: 13.11.2012
Сообщений: 1,564
23.02.2014, 20:51
funk_ua, а решение?.. Или делиться не надо?
0
 Аватар для funk_ua
1 / 1 / 1
Регистрация: 27.08.2012
Сообщений: 54
23.02.2014, 23:39  [ТС]
сделал не через поток, а LRESULT CALLBACK. В цикле , где создаю дочерние окна поставил счётчик (count). Ну а дальше в LRESULT CALLBACK:
C++
1
2
3
4
5
6
7
case WM_PAINT:
           if (count==5) {
            PAINTSTRUCT ps;
            BeginPaint( hwnd, &ps );
            FillRect( ps.hdc, &ps.rcPaint, (HBRUSH)(COLOR_GRAYTEXT+13));
            EndPaint( hwnd, &ps );
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.02.2014, 23:39
Помогаю со студенческими работами здесь

Изменить цвет фона клиентского окна
Добрый день, подскажите как изменить цвет фона клиентского окна. При регистрации класса в hbrBackground сильно не разгонишься с цветом, а...

Как изменить цвет фона диалогового окна
Всем день добрый. Создал win32 проект, к основному окну добавил ресурсом диалоговое окно. Не получается изменить цвет фона диалогового...

Как получить размеры клиентской области окна-родителя в функции дочернего окна?
задание такое: имеется дочернее окно,которое &quot;убегает&quot; от курсора мыши в пределах родительского окна. я создала главное окно,и дочернее,...

Закрытие дочернего окна приводит к закрытию основного окна
Суть задания &quot;После нажатия левой кнопки мышки в области окна в левом углу окна создать временное окно размером в чверть основного окна....

Закрытие дочернего окна
Привет всем !!! Есть программа на WinApi состоящая из родительского и дочернего окон (hWnd и hWnd1 ). Когда мы открываем это дочернее окно...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru