Дочернее диалоговое окно

Тема в разделе "WASM.WIN32", создана пользователем DPX, 21 авг 2005.

  1. DPX

    DPX New Member

    Публикаций:
    0
    Регистрация:
    13 фев 2005
    Сообщения:
    47
    Адрес:
    Russia
    Может про это уже писалось, но я не нашёл.

    У меня диалоговое окно как основное. Как вызвать модальное диалоговое окно? Если я просто вызываю окно так:


    Код (Text):
    1. invoke DialogBoxParam,hInstance,ID_ABOUT_DLG,hWin,addr ADlgProc,0




    окно не появляется, а в OllyDbg написано что LastError ERROR_CANNOT_FIND_WND_CLASS. В Microsoft Spy++ пишется, что класс #32770. Пробовал менять класс в ресурсе при помощи CLASS "MAIN_DLG_CLASS", но это не работает. Что делать,
     
  2. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    DPX

    Ошибка где-то в другом месте. Исходник в студию.
     
  3. DPX

    DPX New Member

    Публикаций:
    0
    Регистрация:
    13 фев 2005
    Сообщения:
    47
    Адрес:
    Russia
  4. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    В AIMTrnADlg.rc есть такой прикол:

    > CLASS "ABOUT_DPX_DLG"



    Чтоб это работало нужно сначала зарегистрировать класс ABOUT_DPX_DLG!



    Я просто убрал эту строчку из обоих шаблонов и окошко сразу появилось.
     
  5. DPX

    DPX New Member

    Публикаций:
    0
    Регистрация:
    13 фев 2005
    Сообщения:
    47
    Адрес:
    Russia
    теперь rc`ха выглядит так:



    #define ID_ABOUT_DLG 2001

    #define ID_A_CLOSE 2002

    #define ID_A_ABOUT_MES 2003



    ID_ABOUT_DLG DIALOGEX 0,0,244,110

    CAPTION "About"

    FONT 5,"MS Sans Serif",0,0,204

    STYLE 0x10c80400

    EXSTYLE 0x00020080

    BEGIN

    CONTROL "ОК",ID_A_CLOSE,"Button",0x50018000,223,31,17,12,0x00000000

    CONTROL "",ID_A_ABOUT_MES,"Edit",0x58210084,0,43,241,55,0x00000200

    END



    но ошибка по прежнему появляется. Кстати, что ты имел в виду "из обоих шаблонов"?
     
  6. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    DPX



    Сорсы из аттача содержали синтаксические ошибки, т.е., очевидно, вы приаттачили не совсем то, что компилировали. Давайте тогда экзешник.





    То, что их двое: главное окно и about.
     
  7. DPX

    DPX New Member

    Публикаций:
    0
    Регистрация:
    13 фев 2005
    Сообщения:
    47
    Адрес:
    Russia
    ресурсы поправил - то же самое.



    да, я вырезал из сорцов ресурс с битмапом и обнулил адреса (мало ли кто скачает! :)). А во всём остальном - то же самое. екзешник - прикрепляю.
     
  8. DPX

    DPX New Member

    Публикаций:
    0
    Регистрация:
    13 фев 2005
    Сообщения:
    47
    Адрес:
    Russia
  9. DPX

    DPX New Member

    Публикаций:
    0
    Регистрация:
    13 фев 2005
    Сообщения:
    47
    Адрес:
    Russia
    так, сейчас перезапустил IDE, скомпилил заново, и всё поехало! Спасибо за разъяснение насчёт класса, что-то из головы вылетело :)
     
  10. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    DPX

    Но глюков всё равно много...



    В диалоге не работает кнопка OK, т.к. её ID отличается в RC и INC.



    Картинка не загружается, т.к. hBack хранится в локальной переменной.



    В диалогах нужно обрабатывать WM_INITDIALOG, вместо WM_CREATE (это тоже в about).
     
  11. DPX

    DPX New Member

    Публикаций:
    0
    Регистрация:
    13 фев 2005
    Сообщения:
    47
    Адрес:
    Russia
    да, я знаю, всё поправил.