CEdit::GetFont() возвращает NULL
От: kimsite Россия http://kimsite.wallst.ru
Дата: 15.04.03 17:24
Оценка:
Наверное, все знают сайт "Первые шаги": "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);
 }
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.