|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Июл 26, 2004 23:38:13 Я в недоумении... Моя прога состоит из трех частей: 1. Ключевой ехе [1] 2. Хооки в длл [2] 3. Интерфейс в отдельной длл [3] Интерфей вызывается из [1] путем подгрузки длл и динамической линковки ссылок... В принцепе все работает, в ХР ... Т.е. параметры и все мелочи учтены, диалоги появляются, переключаются и удаляются без каких либо сообщении об ошибках... Надо отметить что все диалоги в виде ресурсов, вызываю их через CreateDialogParam... Есть обыкновенные и на базе класса... Как я уже сказал - все работает... Но совсем по-другому обстоят дела в 98, неговоря уже о 95.. [1] создает невидимое окно, которое является родителем для все остальных окон (это окно НИКОГДА не появляется - так и было задумано...) [3] содержит одно главное окно и еще 3 других второстепенных. Когда я пытаюсь отобразить второстепенные окна из [3], при этом родителем является окно [1] - у двух ничего не выходит, оно просто не появляется на экране..., а одно работает, как ни в чем не бывало. Но во всех случаях все хэндлы в порядке!!! Если же я любое второстепенное окно, но родителем устанавливая главное окно из [3], то все работает. Вышесказанное касается Win98. А в 95 вообще никаких окон не появляется ... Но тем не менее ошибок от винды недождался. Помогите, плиз !!! Направьте заблудшего студента на путь истинный ;)... |
|
|
Дата: Июл 27, 2004 06:44:16 Сам долго мучался с 98. =( Ты под дебаггером смотрел? |
|
|
Дата: Июл 27, 2004 10:10:17 Нет, под дебаггером не смотрел, я использую VKDebug макросы для печати переменных... Поправка: в 95 просто нет одной библиотеки, поэтому длл не грузится, и окна не появляются... Но с 98 - это не проблема. |
|
|
Дата: Июл 27, 2004 12:49:44 lazari Кинь хоть часть сорцов, а то так бесполезно о чем то говорить. |
|
|
Дата: Июл 28, 2004 15:59:04 Ура!!! С диалогами разобрался сам, но все равно спасибо тем, кто хотел помочь. Если кому интересно, вот как я зделал: 1. Диалоги в ресурсах. 2. Они на базе своих классов, т.е. указан класс каждого в ресурсе... 3. Класс регистрируется обычным способом: RegisterClass... 4. Можно строить дилог при помощи DialogBoxParam... or CreateDialogParam... 5. Надо обратить внимание на соообщения. Теперь вместо WM_INITDIALOG посылается WM_CREATE и в этот момент контролы еще не созданы, поэтому инициализироваться не могут... Я делаю так: .if uMsg == WM_CREATE ... invoke PostMessage,hWnd,MY_INITDIALOG,0,0 ... .elseif uMsg == MY_INITDIALOG "то что должно быть в WM_INITDIALOG" invoke ShowWindow... 6. Если ипользуешь DialogBoxParam..., то надо в WM_CLOSE вызывать EndDialog...., а если используешь CreateDialogParam..., то надо DestroyWindow... Вот кажется и все основные моменты, а там уже дело техники. Да, и еще: адрес функции задается в WNDCLASSEX. Удачи! |
|
|
Дата: Июл 28, 2004 20:06:21 Приятно когда люди сами разбираются в своих ошибках. |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.067 |