Создание CDialog видимым - PullRequest
       5

Создание CDialog видимым

1 голос
/ 27 августа 2009

Я пытаюсь заставить DialogBox с флажком появляться. Я добавил его в файл ресурсов, создал шаблон диалога и добавил класс и обработчик событий для диалога. Насколько я понимаю, теперь мне просто нужно создать экземпляр класса и вызвать DoModal ().


Итак, я вернулся и провел некоторое исследование и поиграл с кодом, и это то, что у меня сейчас
UsingMSPSK PSKDialog;

    if( PSKDialog.DoModal() == IDOK)
    {


    }
    else {
        AfxMessageBox("Not IDOK");
    }
    CTempoDialog TempoDialog;


    if(TempoDialog.DoModal() == IDOK)
        {

        }



Когда я запускаю это, я не получаю диалоговое окно из вызова PSLDialog.DoModal (), но я получаю AfxMessageBox, затем появляется TempoDialog. Я прошел через вызов DoModal () в отладчике, и он, кажется, работал и возвращался правильно, поэтому я не могу понять, куда движется мое диалоговое окно.

Я только что посмотрел на возвращаемое значение вызова DoModal (), и кажется, что он немедленно завершается, как я могу это исправить?

Ответы [ 2 ]

2 голосов
/ 27 августа 2009

Должно работать, чтобы сделать диалог видимым - при условии, что шаблон диалога имеет стиль WS_VISIBLE и так далее Может быть, инициализация диалога не удалась? Вызывается ли диалог «DoModal» немедленно? Это будет указывать на ошибку при создании окна.

Какую версию Visual Studio вы используете? Версия 6 раньше не позволяла вам устанавливать точки останова для кода, который еще не был загружен. Или убедитесь, что символы загружены. В окне «Модули» щелкните правой кнопкой мыши библиотеку, содержащую ваш код, и выберите «Загрузить символы». Вы делаете отладочную сборку с символической информацией или сборку релиза? Убедитесь, что это отладочная сборка для простоты отладки.

0 голосов
/ 12 сентября 2009

Я не уверен, почему это произошло, но флажок, который я добавил, был элементом управления ActiveX, и он сломал мое диалоговое окно. Когда я обнаружил панель инструментов и перетащил оттуда флажок, он работал нормально.

...