Что вы можете сделать в :: OnInitDialog () Visual Studio 2008 C ++ - PullRequest
0 голосов
/ 23 марта 2010

Что вы можете или не можете сделать в :: OnInitDialog () Visual Studio 2008 C ++

Я хотел бы написать какой-нибудь текст в диалоговом окне при запуске. Если я помещаю тот же код в КНОПКУ OnBnClicked, это работает. Если я помещу его в OnInit, он не выдаст мне текст на экране. Я предполагаю, что на OnInit, мое диалоговое окно не полностью открыта, поэтому я не могу писать на нем?

CRect  drawRect;    
drawRect.left   = 00;       //  Shifts text to right
drawRect.right  = 300;
drawRect.top    = 00;       // How Far Down
drawRect.bottom = 300;  

// Clear out any previous name
CString strBlank = "Book Name";
SSTextOut(this->GetDC(), strBlank, &drawRect, DT_LEFT);

Функция, в которую я пишу, описана в http://www.codeproject.com/KB/GDI/SSTextOut.aspx

1 Ответ

1 голос
/ 23 марта 2010

Вы не можете использовать функцию SSTextOut() в OnInitDialog(). OnInitDialog() вызывается до вашего диалогового окна, поэтому вы не можете получить действительный CDC внутри него (потому что диалоговое окно еще не было нарисовано).

Судя по всему, SSTextOut() должен вызываться из переопределения OnPaint().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...