VC++6.0/MFC 自定义edit 限制输入内容 响应复制粘贴全选剪切的功能
Ctrl组合键ASCII码
^Z代表Ctrl+z
ASCII值 控制字符 ASCII值 控制字符 ASCII值 控制字符 ASCII值 控制字符
0(00) NULL 8(08) ^H 16(10) ^P 24(18) ^X
1(01) ^A 9(09) ^I 17(11) ^Q 25(19) ^Y
2(02) ^B 10(0A) ^J 18(12) ^R 26(1A) ^Z
3(03) ^C 11(0B) ^K 19(13) ^S 27(1B) ^[
4(04) ^D 12(0C) ^L 20(14) ^T 28(1C) ^\
5(05) ^E 13(0D) ^M 21(15) ^U 29(1D) ^]
6(06) ^F 14(0E) ^N 22(16) ^V 30(1E) ^^
7(07) ^G 15(0F) ^O 23(17) ^W 31(1F) ^_
限制输入内容 :
响应消息OnChar
void CEnglishEdit::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags) { // TODO: 在此添加消息处理程序代码和/或调用默认值 if ((nChar >= 43 && nChar <= 57) || //+,-./ 0~9 (nChar >=65 && nChar <= 90) || //A~Z (nChar >=97 && nChar <= 122) || //a~z nChar == 59 || nChar == 92 || //";\" nChar == 32 || nChar == 8 || //" SP" nChar == 01 || nChar == 03 || //ctrl + a c nChar == 24 || nChar == 22 //ctrl + x v ) { CEdit::OnChar(nChar, nRepCnt, nFlags); } else { return; } }
代码中红色部分是实现 复制粘贴全选剪切的功能;
进过实践发现重写 PreTranslateMessage() 不能实现复制粘贴剪切的功能,可以实现全选功能,根据最上边Ctrl组合键ASCII码 来添加自己需要的功能.