有没有搞错?怎么我的帖子又丢了一次???我要把用户Type储存到CString m_TypeString;
而对话框并未接收到WM_IME_CHAR消息。
无何处理???BOOL CSsDlg::PreTranslateMessage(MSG* pMsg)
{
CClientDC dc(this);
switch(pMsg->message)
{ case WM_IME_CHAR ://汉字
m_TypeString.Insert(m_caretPos, pMsg->wParam>>8/*wParam&0xFF*/);
m_TypeString.Insert(m_caretPos, pMsg->wParam/*wParam/256*/);
m_caretPos+=2;
dc.TextOut(1,300,m_TypeString);//我的意图就是在这里显示输入的m_TypeString,而结果如下
AfxMessageBox(m_TypeString);//对话框根本没有接收到WM_IME_CHAR消息 break;
case WM_CHAR ://英语
m_TypeString.Insert(m_caretPos, pMsg->wParam);
m_caretPos++;
dc.TextOut(1,100,m_TypeString);//WM_CHAR就正常了,不知道为什么
break;
}
return CDialog::PreTranslateMessage(pMsg);
}
另外就是,为什么在对话框的WindowProc函数里处理WM_CHAR以及WM_IME_CHAR怎么不好使?
而对话框并未接收到WM_IME_CHAR消息。
无何处理???BOOL CSsDlg::PreTranslateMessage(MSG* pMsg)
{
CClientDC dc(this);
switch(pMsg->message)
{ case WM_IME_CHAR ://汉字
m_TypeString.Insert(m_caretPos, pMsg->wParam>>8/*wParam&0xFF*/);
m_TypeString.Insert(m_caretPos, pMsg->wParam/*wParam/256*/);
m_caretPos+=2;
dc.TextOut(1,300,m_TypeString);//我的意图就是在这里显示输入的m_TypeString,而结果如下
AfxMessageBox(m_TypeString);//对话框根本没有接收到WM_IME_CHAR消息 break;
case WM_CHAR ://英语
m_TypeString.Insert(m_caretPos, pMsg->wParam);
m_caretPos++;
dc.TextOut(1,100,m_TypeString);//WM_CHAR就正常了,不知道为什么
break;
}
return CDialog::PreTranslateMessage(pMsg);
}
另外就是,为什么在对话框的WindowProc函数里处理WM_CHAR以及WM_IME_CHAR怎么不好使?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货