Я обнаружил загадку в своем старом коде:
void Viewer::ShowWarningAndRedraw() //called when zoom too big
{
//clearing the view
SelectObject(hDC_, GetStockObject(WHITE_BRUSH));
FillRect(hDC_, rect_, WHITE_BRUSH);
CString msg = _T("Too zoomed");
SelectObject(hDC_, GetStockObject(BLACK_PEN));
/*auto res1 =*/ TextOut(hDC_, 35, rect_.Height()/2 - 5, msg, int(_tcslen(msg)));
/*auto res2 =*/ TextOut(hDC_, 35, rect_.Height()/2 - 5, msg, int(_tcslen(msg)));//not sure why, but only the second call actually works. both return success.
Sleep(1000);//flashing the message briefly
DrawFullView();//redrawing
}
, и действительно, только второй вызов на самом деле работает, в то время как оба успешны (возврат 1). Почему первый вызов не дает видимого вывода? Параметры, очевидно, верны (второй точно такой же вызов отображает желаемое сообщение).
Что мне здесь не хватает?
Спасибо!