Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
 Аватар для noop
5 / 5 / 2
Регистрация: 10.06.2014
Сообщений: 40

Создать дополнительное окно

06.07.2015, 20:57. Показов 2355. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем здрасьте.

У меня есть два вопросика:

1. Мне нужно создать ещё одно окно, что нужно для этого сделать ? Описать и зарегистрировать ещё один класс для этого ? или можно обойтись вторым вызовом функции CreateWindow() ?
2. Как сделать прозрачный фон в окне ?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.07.2015, 20:57
Ответы с готовыми решениями:

Дополнительное окно с черт знает с чем
Ну вообще-то не совсе черт знает с чем. там будет конкретно что-то что нужно мне или не мне. Дело вот в чем. Нужно реализовать код...

На счёт скролбара который вытягивает дополнительное дочернее окно
Здравствуйте, не могли бы вы подсказать в общих чертах (на winapi) как сделать такой бегунок над верхней стрелкой которого есть ещё один...

Создать окно поверх главного окна, чтобы главное окно было доступно
здравствуйте. подскажите пожалуйста как сделать окно поверх главного окна, но чтобы главное окно было доступно, как в word окно...

2
 Аватар для Геомеханик
838 / 641 / 940
Регистрация: 26.06.2015
Сообщений: 1,409
06.07.2015, 23:09
Лучший ответ Сообщение было отмечено noop как решение

Решение

Цитата Сообщение от noop Посмотреть сообщение
1. Мне нужно создать ещё одно окно, что нужно для этого сделать ? Описать и зарегистрировать ещё один класс для этого ? или можно обойтись вторым вызовом функции CreateWindow() ?
Если хочешь использовать один класс для двух или несколько окон, то должен знать что любые изменённые атрибуты в классе будут влиять на все окна которые использовали данный класс при создание. Так что если хочешь иметь различные атрибуты у окон создавай постоянно новый класс, только используй расширенный класс структуры WNDCLASSEX и расширенную функцию создание окна CreateWindowEx.


Вот накидал 2-процедуры для установки прозрачности окна и прозрачность по указанному ключу.
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
#ifdef _WIN64
#define getStyle(h)    (DWORD)GetWindowLongPtr((h), GWL_EXSTYLE)
#define setStyle(h, s) SetWindowLongPtr((h), GWL_EXSTYLE,(s))
#else
#define getStyle(h)  (DWORD)GetWindowLong((h), GWL_EXSTYLE)
#define setStyle(h, s) SetWindowLong((h), GWL_EXSTYLE,(s))
#endif
 
 
//прозрачность указанного цвета по цветовому ключу
void  setTransparent(HWND hwnd, bool enable, COLORREF color_key){
#if _WIN32_WINNT >= 0x0500
#ifdef LWA_ALPHA
    DWORD flags = getStyle(hwnd);
    if((! enable) && (flags & WS_EX_LAYERED))
        setStyle(hwnd, flags & ~WS_EX_LAYERED);
    else {
        setStyle(hwnd, flags | WS_EX_LAYERED);
        SetLayeredWindowAttributes(hwnd, color_key, 0xFF, 
                                   LWA_ALPHA | LWA_COLORKEY);   
    }
    InvalidateRgn(hwnd, NULL, TRUE);
#endif
#endif
}
 
 
// установка прозрачности формы
void  setAlpha(HWND hwnd, bool enable, BYTE alpha) {
#if _WIN32_WINNT >= 0x0500
#ifdef LWA_ALPHA
    DWORD flags = getStyle(hwnd);
    if((! enable) && (flags & WS_EX_LAYERED))
        setStyle(hwnd, flags & ~WS_EX_LAYERED);
    else {
        setStyle(hwnd, flags | WS_EX_LAYERED);
        SetLayeredWindowAttributes(hwnd, 0, alpha, LWA_ALPHA);
    }
    InvalidateRgn(hwnd, NULL, TRUE);
#endif
#endif
}
1
 Аватар для noop
5 / 5 / 2
Регистрация: 10.06.2014
Сообщений: 40
07.07.2015, 00:32  [ТС]
Спасибо, помогли.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.07.2015, 00:32
Помогаю со студенческими работами здесь

Создать окно с иконкой
Разработать программу создающую окно с иконкой средствами Win32 API знаю что я очень глуп,только начал изучать с++)

Создать окно WINAPI32
Помогите написать программу. Создать главное окно с пиктограммой , с областью заголовка, рамкой и с системным меню: “Каталоги”,...

Создать окно WinAPI
выдает ошибку с2059: синтаксическая ошибка:, ругается на эту строчку hwnd = CreateWindow(szAppName, ... про данную ошибку читал но...

Создать дочернее окно
Как создать дочернее окно? Помогите, пожалуйста.

Создать окно с вкладкой
Подскажите пожалуйста, есть ли какая нибудь функция для создания окна с вкладкой по принцыпу, как на картинке? Не обязательно такой же...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru