如何屏蔽一个输入字符

begin_ABC 2001-11-11 02:59:56
我在VC++下要实现屏蔽一个输入的非特殊字符(也就是不是VK_HOME之类的,我估计应该是属于在VK_UNDEFINED的),比如“[”,放在OnChar()或者OnKeyDown()之类的函数中实现,由于函数中只有有UNIT pChar之类的变量,怎么才能屏蔽掉(输入无反应)呢,也就是说如何知道我输入的是“[”呢?
...全文
93 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
begin_ABC 2001-11-12
  • 打赏
  • 举报
回复
谢谢两位的回复,问题已经解决了。
begin_ABC 2001-11-11
  • 打赏
  • 举报
回复
to jason802(小糊涂仙) AND DeadWolf(死狼)
呵呵,够详细,不过我查过虚拟键码,里面一般都是一些特殊的键吧。比如我要求的是键盘上没有的键值呢?即用符号输入法什么的输入的符号。
91这个值是不是用BIOSKEY()之类的函数得到的?我的问题在于我要在WINCE下实现这个功能,而且有不能调试,根本就搞不清楚它在那里到底是多少。。。
jason802 2001-11-11
  • 打赏
  • 举报
回复
如果你要查虚拟键码,可以这么做:
MSCN,索引,输入VK_ ,就会出现一大串虚拟键码,随便选一个,就可以打开虚拟键码的文档,里面有每个键的虚拟键码。


DeadWolf 2001-11-11
  • 打赏
  • 举报
回复
PreTranslateMessage(MSG* pMsg) 中处理WM_CHAR

当WM_CHAR 等于要屏蔽的字符是丢弃
if(pMsg->message == WM_CHAR )
{
if(pMsg->wParam==91 ) \\'['
return TRUE;
}
jason802 2001-11-11
  • 打赏
  • 举报
回复
BOOL CMyDlg::PreTranslateMessage(MSG* pMsg)
{
if(pMsg->message==WM_KEYDOWN&&pMsg->wParam==VK_RETURN) //把VK_RETURN换成你感兴趣的键的虚拟键码
{
//加入你的处理代码

return 1;

}

return CDialog::PreTranslateMessage(pMsg);
}


虚拟键码参看MSDN

16,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧