请教各位,我想在编辑框中实现这样一个功能:编辑框已被我限制只能存放47个字符(即存放16个16进制数值和15个空格,
例如11 22 33 44 55 66 77 88 99 00 AA BB CC DD EE FF),如果我输入11223344556677889900AABBCCDDEEFF,通过算法如何把它转换成11 22 33 44 55 66 77 88 99 00 AA BB CC DD EE FF,注意要实时添加空格,即我输入112的时候,就要变成
11 2(11和2之间有个空格).
还有就是如何在我输入1+空格的时候,通过算法能够动态添加0,使之变成01+空格。
这两个功能要同时实现,恳请高手指教,谢谢!

解决方案 »

  1.   

    可以在Wm_Char 消息进行处理int count = 0;OnChar(UINT   nChar,   
            UINT   nRepCnt,   
            UINT   nFlags     )
    {
      OnChar( nChar,   
              nRepCnt,   
              nFlags);   count ++;
       if(count == 2)
        {
              count = 0;          if(nChar == VK_SPACE)
              {
                  char *buf = new char[GetWindowTextLength];              GetWindowText(hWnd, buf, GetWindowTextLength);
                  SendMessage(WM_CHAR, VK_BACK, 0);
                  SendMessage(WM_CHAR, VK_BACK, 0);
                  SendMessage(WM_CHAR, '0', 0);
                  SendMessage(WM_CHAR, BUF[GetWindowTextLength - 2], 0);
                  SendMessage(WM_CHAR, BUF[GetWindowTextLength - 1], 0);              
              }
              else
              {
                  SendMessage(VK_SPACE);
              }
          }
    }看看行不行
      

  2.   

    GetWindowTextLength 改成 GetWindowTextLength()
      

  3.   

    应该在文本框的OnChanged事件中对所有字串进行分析并替换
      

  4.   

    楼上的对,或者是OnKeyUp(我不知道有没有啊,哈哈)