我想让编辑框屏蔽全角片假名,该怎样做呢?

解决方案 »

  1.   

    响应editbox的WM_CHAR消息,在响应函数中做判断
      

  2.   

    只好在键盘处理消息中控制:WM_KEYDOWN,WM_KEYUP,WM_CHAR
      

  3.   

    to Snow——Ice:谢谢,但怎么和中、英文区分,又怎么知道当前输入的就是日文,有没有什么函数可以获得当前输入法字体的,或是其它什么方法?
      

  4.   

    呵呵,东洋的鬼画符我懂得不多^_^,不过可以给你一个思路:对于汉字编码,比如“音乐盒好心分手”这七个汉字的对应编码如下:
    %D2%F4 %C0%D6 %BA%D0 %BA%C3 %D0%C4 %B7%D6 %CA%D6你可以自己试一下看每个日文那个什么什么名字符对应编码是多少。
    不用怕,汉字6K多个我们难以一个个对,东洋字吗,区区百来字应该还难不住咱,你只要发现它们间的规律就容易屏蔽了,用不着看用户的当前输入法。
      

  5.   

    用下面的程序查日文编码吧。#include <iostream.h>void main()
    {
    char a[]="音";    //把这里的汉字改成日文字符即可查到它的编码
    cout<<"第一个字节的十进制值="<<(a[0] & 0xff)<<endl;
    cout<<"第二个字节的十进制值="<<(a[1] & 0xff)<<endl;
    }
      

  6.   

    我重新写了一段程序查:
    #include <iostream.h>void main()
    {
    char a[]="ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶーヽヾ";    //全部的片假名(79个)都在这里了
    for (int i=0;i<89;i++)
    {
    cout<<(a[i*2] & 0xff)<<","<<(a[i*2+1] & 0xff)<<endl;
    }

    }