我想把用户输入的字符转换成二进制数,然后存入文件,用itoa((int)'a',aa,2);可以完成,但是遇到"/","\"时该函数则报错,请问有解决办法嘛?另外我想把用户输入一段字符串用一个键盘上不能输入的字符间隔开,请问如何做?

解决方案 »

  1.   

    偶的办法
    1截获onchar
    2,判断这个时候焦点是不是再edit框,
    如果是的话屏蔽调
    当然这样必须子类话
    子类话就是搞个cadvanceedit 从cedit继承
      

  2.   

    我的办法是直接在PreTranslateMessage()中屏蔽此按键:
    先添加PreTranslateMessage,然后在里面添加如下:
    BOOL CMy1Dlg::PreTranslateMessage(MSG* pMsg) 
    {
    // TODO: Add your specialized code here and/or call the base class
    if (pMsg->message == WM_KEYDOWN && (pMsg->wParam == 0XDC || pMsg->wParam == 0XBF)) return true;

    return CDialog::PreTranslateMessage(pMsg);
    }
    其中pMsg->wParam == 0XDC 对应‘\', pMsg->wParam == 0XBF对应'/',这两个都是虚拟键,所有虚拟键可以参考:http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/WinUI/WindowsUserInterface/UserInput/VirtualKeyCodes.asp
    楼住可以根据需要屏蔽相应的键。
      

  3.   

    响应change事件,判断最后一个字符是否为/或\