Почему не видно диалога?

Тема в разделе "WASM.BEGINNERS", создана пользователем strange2007, 24 ноя 2010.

  1. strange2007

    strange2007 New Member

    Публикаций:
    0
    Регистрация:
    9 ноя 2010
    Сообщения:
    126
    Подскажите почему основное окно диалога не видно. Кнопки есть, а то на чем они должны быть нету. Прямо как кот из мульт. про Алису.

    Код (Text):
    1. IDD_DLG1 DIALOGEX 6,6,335,146
    2. CAPTION "Серверная настройка"
    3. FONT 8,"MS Sans Serif",400,0
    4. STYLE DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_CAPTION | WS_SYSMENU
    5. EXSTYLE WS_EX_APPWINDOW
    6. BEGIN
    7.   CONTROL "Отмена",IDC_BTN2,"Button",0x50010000,280,131,52,13,0x00000000
    8.   CONTROL "Ок",IDC_BTN1,"Button",0x50010000,224,131,52,13,0x00000000
    9. END
    Раньше я всегда делал "DIALOG DISCARDABLE", а тут решил посмотреть "DIALOGEX" и вот неудача
     
  2. strange2007

    strange2007 New Member

    Публикаций:
    0
    Регистрация:
    9 ноя 2010
    Сообщения:
    126
    уй дурааааааааак... все, нашел граблю. Ночь на дворе делает свое дело. Фича в том, что WM_COMMAND всегда посылаю как обработано, хотя ни чего не обработал :dntknw:
    Чувствую себя неучем
     
  3. strange2007

    strange2007 New Member

    Публикаций:
    0
    Регистрация:
    9 ноя 2010
    Сообщения:
    126
    еще вопрос: уничтожение диалога при помощи DestroyWindow можно? Или только EndDialog?
     
  4. strange2007

    strange2007 New Member

    Публикаций:
    0
    Регистрация:
    9 ноя 2010
    Сообщения:
    126
    и последний вопрос:
    господа, поделитесь, пожалуйста опытом, лучше диалоги рисовать или самому окна? В диалогах можно как-то указать привязку к границам? А то при изменении размера основного окна диалога хочется как-то масштабировать контролы. Может есть какие продуманные удобства или только руками?
     
  5. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    Основное преимущество диалогов - их можно затолкать в ресурсы, не надо все кнопки, едиты и пр. контролы создавать программно в коде.
    С окнами всё надо писать самому, да и в поведении окон и диалогов есть кое-какие различия.

    DestroyWindow просто уничтожает конкретное окно и всё.
    EndDialog делает следующее:
    http://www.cyberguru.ru/programming/win32/win32-dialog-window-ref-page12.html
     
  6. strange2007

    strange2007 New Member

    Публикаций:
    0
    Регистрация:
    9 ноя 2010
    Сообщения:
    126
    Мда... ключевая фраза из Вашей ссылки "...Диалоговые окна, созданные функциями DialogBox, DialogBoxParam, DialogBoxIndirect и DialogBoxIndirectParam должны быть разрушены, при помощи использования функции EndDialog..." развеяла последние сомнения. Хорошо, что исправлять совсем немного
     
  7. strange2007

    strange2007 New Member

    Публикаций:
    0
    Регистрация:
    9 ноя 2010
    Сообщения:
    126
    И все же что на счет привязок элементов диалога? Такое существует или самому надо писать?
     
  8. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    Самому. Обрабатывать WM_SIZE, получить из lParam размеры окна и сообразуясь с ними, пересчитывать и изменять положение/размеры контролов через MoveWindow

    http://msdn.microsoft.com/en-us/library/ms632646(VS.85).aspx
     
  9. strange2007

    strange2007 New Member

    Публикаций:
    0
    Регистрация:
    9 ноя 2010
    Сообщения:
    126
    Спасибо, cresta, сомнения развеяны, теперь можно сразу делать, а не искать. С другой стороны, без подобных комментариев такие как я часто изобретают велосипед