|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
02.12.2010, 13:34 | #1 |
Пользователь
Регистрация: 15.05.2009
Сообщений: 29
|
Сделать окно дочерним
Я создал простое окно со стилем WS_EX_TOOLWINDOW на основе диалога и хочу его определить дочерним по отношению к другому приложению (MapInfo). Вроде получилось, окошко привязалось к программе, но оно:
- не всегда правильно отрисовывается; - после сворачивания основного окна мое окно не реагирует на клик мsib? пока не сделаешь активным основное окно, хотя на контролы можно нажать. Окно создаю так: Код:
Код:
|
02.12.2010, 13:48 | #2 |
Форумчанин
Регистрация: 17.09.2009
Сообщений: 294
|
самый лучший способ сделать твое окно дочерним в MapInfo, поместить окно в Dll, и написать вызов из программы написанной на MapBasic'e.
принимаю благодарности в письменном виде( весы слева)...
|
02.12.2010, 14:50 | #3 |
Пользователь
Регистрация: 15.05.2009
Сообщений: 29
|
Я переделал exe в dll, заменив WinMain на экспортную функцию (ее я вызываю из MI), но DialogBox возвращает "-1".
Код:
Последний раз редактировалось Qwe1; 02.12.2010 в 14:58. |
03.12.2010, 07:23 | #4 |
Форумчанин
Регистрация: 17.09.2009
Сообщений: 294
|
к сожелению C++ я не знаю, но если хочешь могу навоять пример на delphi.
принимаю благодарности в письменном виде( весы слева)...
|
03.12.2010, 08:38 | #5 |
Пользователь
Регистрация: 15.05.2009
Сообщений: 29
|
Сейчас задача сузилась: нужно для начала вызвать диалог из DLL. Как это сделать? На Delphi? Если и там чистый WinAPI - то можно, посмотрю, спасибо.
|
03.12.2010, 09:52 | #6 |
Форумчанин
Регистрация: 17.09.2009
Сообщений: 294
|
Вот тебе архивчик, разбирайся.
принимаю благодарности в письменном виде( весы слева)...
|
03.12.2010, 10:07 | #7 |
Пользователь
Регистрация: 15.05.2009
Сообщений: 29
|
Спасибо, посмотрю повнимательней. Но это ведь модальное окно, то есть пока его не закроешь работать дальше нельзя, а можно сделать его немодальным и убрать из таскбара?
|
03.12.2010, 12:06 | #8 |
Форумчанин
Регистрация: 17.09.2009
Сообщений: 294
|
Держи... Подправил DLL, изучай
принимаю благодарности в письменном виде( весы слева)...
|
03.12.2010, 12:21 | #9 |
Пользователь
Регистрация: 15.05.2009
Сообщений: 29
|
А можно сделать так, чтобы это окно сворачивалось при сворачивании окна MI, теряло фокус, когда и основное окно теряет фокус и т.д.? То есть вело бы себя как дочернее? Еще заметил, что когда закрываешь окно из DLL, закрывается и окно MI, а если наоборот - MI вылетает.
|
03.12.2010, 13:02 | #10 |
Форумчанин
Регистрация: 17.09.2009
Сообщений: 294
|
Подправил dll:
1. вместо закрытия, прячем окно (тогда не будет закрываться MI); 2. что бы окно вело как дочернее, необходимо перехватывать сообщения для MI, т.е. ставь хуки на окно MI.
принимаю благодарности в письменном виде( весы слева)...
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как сделать при нажатии кнопки новое окно | quarty | Общие вопросы Delphi | 9 | 01.11.2010 14:06 |
как сделать что новое окно не открывалось,а... | DimOn4Ik | Общие вопросы Delphi | 10 | 15.10.2009 09:37 |
Как сделать, чтобы модальное окно закрылось по условию? | DrMcSheen | Общие вопросы C/C++ | 2 | 24.08.2009 15:54 |
Как сделать окно дочерним? | abdyla_v | Win Api | 0 | 25.08.2008 20:24 |
Помогите сделать окно авторизации пользователей | HAMMAN | Помощь студентам | 2 | 09.05.2008 00:02 |