0

これらのコードは WM_CHAR ハンドラですが、単語を入力しても何も出力されませんか??

void CMy3456View::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{

Invalidate(true);
//MessageBox(L"dfs");//enable this line,then the  outputs turns normal,why???
CClientDC dc(this);

CString c=L"";
c.Format(L"%c",nChar);
dc.TextOutW(0,0,c);

CView::OnChar(nChar, nRepCnt, nFlags);
}
4

1 に答える 1

2

OnChar 内のウィンドウでペイントするべきではありません。WM_PAINT ハンドラに処理させる必要があります。InvalidateWM_ERASEBKGND と WM_PAINT がすぐ後に続くため、おそらく TextOutW の結果が消去されます。

于 2012-08-04T16:13:38.377 に答える