Наверное, все знают сайт "Первые шаги": "MFC шаг за шагом".
Заглянем во второй шаг:
http://www.firststeps.ru/mfc/steps/2.html
Там просто создается динамическое (из указателя CEdit*) текстовое поле с именем MyEdit.
Сразу после создания, когда на форму положим MyEdit, заполним его текстом "qwerty".
И вернем результат. Естественно, все получилось.
А если попытаться получить текущий шрифт MyEdit, то вернется NULL.
Как быть?
Надеюсь на помощь.
Ниже привожу соответствующий код.
CMainWnd::CMainWnd()
{
Create(NULL, "Step2", WS_OVERLAPPEDWINDOW, rectDefault, NULL, NULL);
MyEdit = new CEdit();
if (MyEdit!=NULL) MyEdit->Create(WS_CHILD|WS_VISIBLE|WS_BORDER,
CRect(240,10,340,50),this,IDC_MYEDIT);
MyEdit->SetWindowText("qwerty");
CString strText;
MyEdit->GetWindowText(strText);
// Как и положено, вернулась строка "qwerty"
AfxMessageBox(strText);
CFont *objFont;
objFont = new CFont;
// Получаем указатель на текущий шрифт MyEdit
objFont = MyEdit->GetFont();
if (objFont == NULL)
{
// Возвращаем предупреждение
AfxMessageBox("font empty");
}
else
{
// Возвращаем имя шрифта
LOGFONT objLog;
objFont->GetLogFont(&objLog);
AfxMessageBox(objLog.lfFaceName);
}
}