![]() |
|
![]() ![]() ![]() |
|
VSB |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 23.8.2007 Репутация: нет Всего: 2 |
Нужно в DLL добавить окошко с двумя GroupBox в которых расположены независящие друг от друга группы RadioButton (в левом - 4 переключателя, в правом - 3). Ну и кнопки OK и Cancel.
И показывать это окно при вызове в процессе работы одной из функций DLL Как это сделать в студии? |
|||
|
||||
586 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 6 Всего: 146 |
Какой фреймворк используете? WindowsForms, MFC, Qt? Или просто WinAPI?
Это сообщение отредактировал(а) 586 - 18.7.2010, 23:24 |
|||
|
||||
VSB |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 23.8.2007 Репутация: нет Всего: 2 |
Просто WinAPI.
Надо получить примерно такое окно (в DLL)? но только чтобы еще группы RadioButton в разных GroupBox работали независимо
|
|||
|
||||
586 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 6 Всего: 146 |
Примерно, так:
|
|||
|
||||
VSB |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 23.8.2007 Репутация: нет Всего: 2 |
Функция DllMain не вызывается (проверил отладчиком).
А вообще, вопрос пожалуй даже не об окне (чистым WinAPI оно успешно делается) а о том, как в нем сделать две независимые группы RadioButton'ов, желательно помещенные в GroupBox. Сначала хотел добавить диалог в ресурсы, но не понял как на нём разделить RadioButton в независимые группы. |
|||
|
||||
Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 1 Всего: 39 |
Если не вызываются то: 1. DLL не загружается 2. DLL загружается как LoadLibraryEx с флагом LOAD_LIBRARY_AS_IMAGE_RESOURCE Если любой из 2 вариантов то показать диалог тебе ни как не удастся. -------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Там весь фокус в стилях. Во-первых, все кнопки группы должны быть расположены по-порядку, между ними - групбокс (что-раньше, групбокс или кнопки - в твоем случае неважно, но я обычно ставлю групбоксы ЗА содержащимися в них контролами). Во-вторых, первая кнопка группы должна иметь стиль WS_GROUP, а остальные - не иметь. В принципе, должно работать и без групбоксов, но для гарантиии (групбоксы-то все равно есть), им тоже присвой стиль WS_GROUP. Т.е. грппа считается от первого контрола со стилем WS_GROUP до следующего с ним же (но он уже не входит). -------------------- ... |
|||
|
||||
VSB |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 23.8.2007 Репутация: нет Всего: 2 |
Dem_max,
И тем не менее, всё работает как у 586 Earnest, А не покажете в моем коде? Это сообщение отредактировал(а) VSB - 19.7.2010, 10:23 |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Когда я вижу код вида "0x50000009" вместо символьных обозначений стилей, мне хочется немедленно застрелить автора. Чего тебе показать? Как WS_GROUP к флагам добавить? Если тебе надо это показывать, тебе пока рано писать программы, а нужно учебники поштудировать.
Я ведь написала, как. Использование редактора ресурсов - лучший путь в данном случае. Динамическое создание диалогов и контролов иногда бывает полезным, но не в данном случае. Код функции create_wnd_content0 вызывает одно желание - немедленно убить автора. ![]() Впрочем, я повторяюсь. -------------------- ... |
|||
|
||||
VSB |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 23.8.2007 Репутация: нет Всего: 2 |
||||
|
||||
Dem_max |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 1 Всего: 39 |
Тогда застрели Била Гейца ибо таких значений в DLL винды полно.
Ты сам себе противоречишь, либо пытаешься нас ввести в заблуждение. -------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
||||
|
|||||
VSB |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 23.8.2007 Репутация: нет Всего: 2 |
Даже и н знаю Основная программа - Total Commander WCX Writer's Reference.hlp утверждает, что плагин загружается через LoadLibrary() Компилятор/отладчик - MS Visual Studio. Линковка CRT - Multi-threaded Debug DLL (/MDd) hInstance поставил как NULL (поскольку отладчик показывает, что DllMain не вызывается, а Вызываемый методы не содержат параметра hInstance) При таком раскладе всё вроде работает, но что делать с hInstance? А вообще хотел просто узнать как такое сделать через диалог в ресурсах Earnest, как сделать на чистом WinAPI понял, а как через ресурс диалога - не очень |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Ну, добавляешь в ресурс диалога все нужные радио-батоны, выстраиваешь их в нужном порядке (там команда такая есть в меню Format - TabOrder), потом расставляешь стили: как уже было сказано, первой кнопке каждой группе ставишь Group = true (в свойствах контрола), всем последующим - false. Групбоксы расположи до или после каждой группы кнопок, и тоже поставь им Group = true. Кстати, в редакторе ресурсов есть команда Test Dialog, с ее помощью можно проверить как функционируют группы кнопок (они должны правильно переключаться). Ах да, радиобатоны должны меть стиль Auto, но по-меоему они так и создаются по-умолчанию. -------------------- ... |
|||
|
||||
VSB |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 23.8.2007 Репутация: нет Всего: 2 |
Earnest,
Это хорошо, но как это всё показать и обрабатывать? |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Кому показать-то? В смысле, создать диалог из ресурсов? Если чистый АПИ, то смотри функции DialogBox или CreateDialog, в зависимости от того, модальный тебе нужен диалог или нет. А обрабатывать - так диалоговая процедура для этого пишется.
-------------------- ... |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |