这些代码是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);
}
答案 0 :(得分:2)
你不应该在OnChar的窗口中绘画,你应该让你的WM_PAINT处理程序处理它。 Invalidate
导致WM_ERASEBKGND和WM_PAINT很快跟进,这可能会删除TextOutW的结果。