Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с CPropertySheet 
V
    Опции темы
Darhazer
Дата 1.10.2007, 11:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 429
Регистрация: 28.9.2005
Где: HellCity (Sofia, Bulgaria)

Репутация: нет
Всего: 29



Приветь,
Уже второй ден пробую сделать Wizard.
Решил что простейший способ - MFC

Так, сделал проект, вот код 

Код

#include "Globals.h"

#include "Page1.h"
#include "Page2.h"
#include "Page3.h"

class CMyApp : public CWinApp
{
public:
        CMyApp() {};
        virtual BOOL InitInstance();

        DECLARE_MESSAGE_MAP();
};

BEGIN_MESSAGE_MAP(CMyApp, CWinApp)
    ON_COMMAND(ID_HELP, &CMyApp::OnHelp)
END_MESSAGE_MAP()

BOOL CMyApp::InitInstance()
{
    CWinApp::InitInstance();

    CPropertySheet dlg;

    CPage1 page1;
    CPage2 page2;
    CPage3 page3;

    dlg.AddPage(&page1);
    dlg.AddPage(&page2);
    dlg.AddPage(&page3);
    
    m_pMainWnd = &dlg;

    dlg.SetWizardMode();

    int result = dlg.DoModal();

    return TRUE;
}

CMyApp theApp;


Програма умираеть ( с окном Break, Continue, Ignore) при вызове DoModal и точнее в DoModal при обращение к BuildPropPageArray().
Увидил что ошибка появляеться только если добавлю AddPage...

CPage выглядить так:

Код

#ifndef __CPAGE1_H__
#define __CPAGE1_H__

#include "Globals.h"

class CPage1 :
    public CPropertyPage
{
public:

    enum { IDD = IDD_DIALOG1 };

    CPage1(void)
    {
        CPropertyPage( CPage1::IDD, NULL );
    };
    
    ~CPage1(void)
    {
    };

    
protected:
    HICON m_hIcon;

    virtual BOOL OnInitDialog(){
        CPropertyPage::OnInitDialog();
        return TRUE;
    }
    
    virtual void DoDataExchange(CDataExchange* pDX)
    {
        CPropertyPage::DoDataExchange(pDX);
    }

    virtual BOOL OnSetActive()
    {
        CPropertySheet* parent = (CPropertySheet*)GetParent();
        parent->SetWizardButtons(PSWIZB_BACK | PSWIZB_NEXT);
        
        /*PSWIZB_BACK   Back button
        PSWIZB_NEXT   Next button
        PSWIZB_FINISH   Finish button
        PSWIZB_DISABLEDFINISH   Disabled Finish button*/

        return CPropertyPage::OnSetActive();
    }

    virtual BOOL OnKillActive()
    {
        return TRUE;
    }

    void OnPaint();
    HCURSOR OnQueryDragIcon();

    

    DECLARE_MESSAGE_MAP()
};

#endif


Чего пропустил сделать?

Спасибо

П.С. В первие пользую MFC
В Globals.h у меня подключен "stdafx.h"




P.S. Проблема решена

Добавил page1.construct( CPage1::IDD ); также и для всех остальних CPage*

Это сообщение отредактировал(а) Darhazer - 1.10.2007, 11:54


--------------------
I'm a wheel, I'm a wheel, I can roll, I can feel
But you can't stop me turning
'Cause I'm the sun, I'm the sun, I can move, I can run
But you'll never stom me burning
PM MAIL WWW ICQ YIM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0419 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.