edit box。 怎么实现 用户对edit box输入的时候就把空格换成其他字符 好像没说清楚我的意思是说 用户把字符输入到edit box的时候 一旦用户按下了空格键 显示出来的就是我想要代替的字符 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 试试:重载主窗口的PreTranslateMessage函数,判断WM_CHAR消息并且wParam==0x20,将wParam改成要替代的字符,最后再调用基类的PreTranslateMessage函数。 //这样可以吗?BOOL CMyEdit::PreTranslateMessage(MSG* pMsg) { if(pMsg->message==WM_KEYDOWN) { if (pMsg->wParam == VK_SPACE) //空格键。 { pMsg->wParam = 替换的字符。 } } return CEdit::PreTranslateMessage(pMsg); } 处理这个EditBox的EN_CHANGE映射函數, 只要有輸入都會響應它,這就很好辦了,CString str;GetDlgItemText(IDC_EDITID,str);str.Replace(" " ,"你的字符");SetItemText(IDC_EDITID,str);當然,你也可以給它綁定一個變量,只要更新變量就行了,不用獲取,更改,再設定 添加一个类如CMyEdit,从CEdit继承, 将Edit控件绑定到自己继承的类上。然后再重载WM_CHAR消息,在此就可以对输入的字符进行处理了 处理这个EditBox的EN_CHANGE映射函數, 只要有輸入都会响应它,這就很好办了,CString str;GetDlgItemText(IDC_EDITID,str);str.Replace(" " ,"你的字符");SetItemText(IDC_EDITID,str);當然,你也可以給它綁定一个变量,只要更新变量就行了,不用获取,更改,再設定 不需要捕捉键盘的消息,不需要在PreTranslateMessage中处理,那样麻烦. BOOL CXxxDlg::PreTranslateMessage(MSG* pMsg){ if (pMsg->message == WM_CHAR && pMsg->wParam == ' ') pMsg->wParam = 'A'; // 替换为A return CDialog::PreTranslateMessage(pMsg);} 书无止境 谁使用过CryptCPP加密库的RSA加密,请教点小问题 关于CStatic的基本问题 关于XML换行的问题 try catch的问题 求助:XP下的IIS5.1,用HTTP的PUT上传文件为何失败? 初学者请教!! BMP图片如何得到其像素值? 请问,我要把一个数字当成字符串加到一个已经有的CString里去,怎么加? 怎么实现文本的淡入淡出? 关于SetRecordSource()的应用 会的人请告诉怎么用 应该怎么定义它和用它 求助~mfc 调用 PHP WEB
{
if(pMsg->message==WM_KEYDOWN)
{
if (pMsg->wParam == VK_SPACE) //空格键。
{
pMsg->wParam = 替换的字符。
}
}
return CEdit::PreTranslateMessage(pMsg);
}
CString str;
GetDlgItemText(IDC_EDITID,str);
str.Replace(" " ,"你的字符");
SetItemText(IDC_EDITID,str);當然,你也可以給它綁定一個變量,只要更新變量就行了,不用獲取,更改,再設定
CString str;
GetDlgItemText(IDC_EDITID,str);
str.Replace(" " ,"你的字符");
SetItemText(IDC_EDITID,str);當然,你也可以給它綁定一个变量,只要更新变量就行了,不用获取,更改,再設定
{
if (pMsg->message == WM_CHAR && pMsg->wParam == ' ')
pMsg->wParam = 'A'; // 替换为A return CDialog::PreTranslateMessage(pMsg);
}