У меня есть следующий код в попытке установить текст в текстовом поле Cedit:Установка CEDIT текста
class CMetaDlg : public CDialogEx
{
public:
CMetaDlg();
// Dialog Data
enum { IDD = IDD_META };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
// Implementation
protected:
DECLARE_MESSAGE_MAP()
public:
CEdit m_author;
CEdit m_sources;
afx_msg void OnBnClickedOk();
};
CMetaDlg::CMetaDlg() : CDialogEx(CMetaDlg::IDD)
{
}
void CMetaDlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
DDX_Control(pDX, IDC_AUTHOR, m_author);
DDX_Control(pDX, IDC_SOURCES, m_sources);
}
BEGIN_MESSAGE_MAP(CMetaDlg, CDialogEx)
ON_BN_CLICKED(IDOK, &CMetaDlg::OnBnClickedOk)
END_MESSAGE_MAP()
void CEmergenceApp::OnFileMeta()
{
CMetaDlg md;
md.DoModal();
md.m_author.SetWindowTextW(CEmergenceView::GetDoc()->author);
md.m_sources.SetWindowTextW(CEmergenceView::GetDoc()->sources);
}
Это дает мне ошибку отладки утверждения. Я предполагаю, что проблема заключается в линиях:
md.m_author.SetWindowTextW(CEmergenceView::GetDoc()->author);
md.m_sources.SetWindowTextW(CEmergenceView::GetDoc()->sources);
Как комментирует их, все работает нормально.
Я думаю, вы хотите установить эти значения в OnInitDailog() класса CMetaDlg. – rrirower
нет. попробовал ваше предложение. не работает. – user3396028
Тогда я бы предположил, что указатель, возвращенный из GetDoc(), недействителен. Вы проверили это? – rrirower