[C++, MFC] Второе диалоговое окно

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by assasin94r, 19 Apr 2014.

  1. assasin94r

    assasin94r New Member

    Joined:
    27 Nov 2010
    Messages:
    50
    Likes Received:
    0
    Reputations:
    0
    Здравствуйте! Сразу извиняюсь за тупой вопрос, но его решение никак не могу найти.
    Создаю в MC Visual Studio 2013 MFC проект.
    Добавляю еще одно окно. Отрываю его при клике таким вот кодом:
    Code:
    CDialog *nDialog = new CDialog();
    
    	if (nDialog != NULL)
    	if (nDialog->Create(IDD_DIALOG1, nDialog)){
    		nDialog->ShowWindow(SW_NORMAL);
    	}
    Окно открывается. Только вот в нем не работают функции обработки событий (все делаю как и в первом окне).

    Что я забыл сделать? :(

    1) Создал ресурс (Dialog и HTML).
    2) Создал класс (прописал в настройках ИД диалога и HTML).
    А что дальше?

    Пробовал: подключать заголовочный файл второго окна в файла MFCApplication1.cpp, MFCApplication1Dlg.cpp. Но не работает.
     
    #1 assasin94r, 19 Apr 2014
    Last edited: 19 Apr 2014
  2. assasin94r

    assasin94r New Member

    Joined:
    27 Nov 2010
    Messages:
    50
    Likes Received:
    0
    Reputations:
    0
    Такое ощущение, что приложение просто не видит тот класс, что я создал для второго окна.
     
  3. seosimf

    seosimf Member

    Joined:
    3 Mar 2011
    Messages:
    271
    Likes Received:
    44
    Reputations:
    6
  4. assasin94r

    assasin94r New Member

    Joined:
    27 Nov 2010
    Messages:
    50
    Likes Received:
    0
    Reputations:
    0
    Окно даже на клик не реагирует
     
  5. alexey-m

    alexey-m Elder - Старейшина

    Joined:
    15 Jul 2009
    Messages:
    518
    Likes Received:
    100
    Reputations:
    37
    assasin94r, я не особо знаком как там с MFC & c++, но может все таки лучше попробовать передавать указатель на родителя или null нежели на самого себя?

    CDialog::Create
    Code:
    virtual BOOL Create(LPCTSTR lpszTemplateName, CWnd* pParentWnd = NULL);
     
  6. assasin94r

    assasin94r New Member

    Joined:
    27 Nov 2010
    Messages:
    50
    Likes Received:
    0
    Reputations:
    0
    alexey-m, не помогло(
     
  7. SekirBoshka

    SekirBoshka Member

    Joined:
    25 May 2012
    Messages:
    78
    Likes Received:
    28
    Reputations:
    0
    А GetLastError что говорит?
     
  8. sn0w

    sn0w Статус пользователя:

    Joined:
    26 Jul 2005
    Messages:
    1,023
    Likes Received:
    1,309
    Reputations:
    327
    тыб хоть код выложил, сдается мне что просто не обрабатываются мессаги для этого окна в главном цикле
     
  9. assasin94r

    assasin94r New Member

    Joined:
    27 Nov 2010
    Messages:
    50
    Likes Received:
    0
    Reputations:
    0
  10. GRRRL Power

    GRRRL Power Elder - Старейшина

    Joined:
    13 Jul 2010
    Messages:
    823
    Likes Received:
    185
    Reputations:
    84
    У меня все запускается и реагирует, хоть и диалог как-то странно выглядит.

    Замени

    PHP:
        //MessageBox(L"Месседж бокс", L"Диалог", MB_YESNO | MB_ICONQUESTION);
        
    CDialog *nDialog = new CDialog();

        if (
    nDialog != NULL)
        if (
    nDialog->Create(IDD_DIALOG1NULL)){
            
    nDialog->ShowWindow(SW_NORMAL);
            
    //this->EndDialog(1);
        
    }
        
    int error GetLastError();
    на

    PHP:
    Dialog1().DoModal();
     
  11. assasin94r

    assasin94r New Member

    Joined:
    27 Nov 2010
    Messages:
    50
    Likes Received:
    0
    Reputations:
    0
    А во втором диалоговом окне работает кнопка?
     
    #11 assasin94r, 23 Apr 2014
    Last edited: 24 Apr 2014
  12. GRRRL Power

    GRRRL Power Elder - Старейшина

    Joined:
    13 Jul 2010
    Messages:
    823
    Likes Received:
    185
    Reputations:
    84
    Да, работают все. И я же тебе написал, что можно попробовать заменить в коде.