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 处理程序处理它。Invalidate导致 WM_ERASEBKGND 和 WM_PAINT 紧随其后,这可能会擦除 TextOutW 的结果。

于 2012-08-04T16:13:38.377 回答