Re: Создание переменной типа Control
От: dcb-BanDos Россия  
Дата: 05.10.07 06:24
Оценка: 6 (2)
Здравствуйте, KAPTMEH, Вы писали:

может надо в духе:

BOOL CAsdfDlg::OnInitDialog()
{
    CDialog::OnInitDialog();
        return TRUE;
}

?!
Ничто не ограничивает полет мысли программиста так, как компилятор.
Создание переменной типа Control
От: KAPTMEH  
Дата: 04.10.07 21:13
Оценка: :)
Исправлено форматирование текста. — SchweinDeBurg

Вообшем такая ситуация есть главное окно в нем можно без проблем создавать переменные типа CButton CEdit и т.д. . Создал в ресурсах диалоговое окно к нему прицепил ещё один MFC класс (тоесть у нас уже два окна 1 основное и другое то из которого у нас вызывается второе окно созданое отдельно мной). Так вот во втором окне если я хочу объявить переменную на какой нить объект окна он её выделяет но при любом взаимодействии с объектом (нажал на кнопку или ввел что нить в CEdit) у меня вылетает ошибка . Внимание знатоки вопрос ... какого это не работает ? (собственно код ниже). Вызываю это окно так CSloiDlg SloiWind; SloiWind.DoModal();

class CSloiDlg : public CDialog
{
    DECLARE_DYNAMIC(CSloiDlg)

public:
    CSloiDlg(CWnd* pParent = NULL);   // standard constructor
    virtual ~CSloiDlg();

// Dialog Data
    enum { IDD = IDD_DATA_SLOI };

protected:
    virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
    virtual BOOL OnInitDialog();

    DECLARE_MESSAGE_MAP()

private:
    afx_msg void OnEnChangeDlgH(); // это все работает
    afx_msg void OnEnChangeDlgD();
    afx_msg void OnEnChangeDlgA();
    afx_msg void OnEnChangeDlgN();
    afx_msg void OnEnChangeDlgDel();

public:
    CButton m_BtnOk; // а вот это 
public:
    CEdit m_Control_H; // и вот это не работает :(
};


IMPLEMENT_DYNAMIC(CSloiDlg, CDialog)

CSloiDlg::CSloiDlg(CWnd* pParent /*=NULL*/)
    : CDialog(CSloiDlg::IDD, pParent)
{

}

CSloiDlg::~CSloiDlg()
{
}

void CSloiDlg::DoDataExchange(CDataExchange* pDX)
{
    CDialog::DoDataExchange(pDX);

    DDX_Control(pDX, IDOK, m_BtnOk);
    DDX_Control(pDX, IDC_Dlg_H, m_Control_H);
}

BOOL CSloiDlg::OnInitDialog()
{
    return TRUE;
}



BEGIN_MESSAGE_MAP(CSloiDlg, CDialog)
    ON_EN_CHANGE(IDC_Dlg_H, &CSloiDlg::OnEnChangeDlgH)
    ON_EN_CHANGE(IDC_DLG_D, &CSloiDlg::OnEnChangeDlgD)
    ON_EN_CHANGE(IDC_DLG_A, &CSloiDlg::OnEnChangeDlgA)
    ON_EN_CHANGE(IDC_DLG_N, &CSloiDlg::OnEnChangeDlgN)
    ON_EN_CHANGE(IDC_DLG_DEL, &CSloiDlg::OnEnChangeDlgDel)
END_MESSAGE_MAP()
Re[2]: Создание переменной типа Control
От: KAPTMEH  
Дата: 05.10.07 06:46
Оценка: :)
пасип милый человек
Re: Создание переменной типа Control
От: KAPTMEH  
Дата: 04.10.07 21:37
Оценка:
Ещё вот что . Вызываю дебаг в основном окне работает сначала DoDataExchange(CDataExchange* pDX) а потом уже используется переменная. А во втором окне DoDataExchange(CDataExchange* pDX) или не срабатывает вообше или срабатывает в момент закрытия она ... о как
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.