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 (
(ch >= ‘0‘ && ch <= ‘9‘)||
(ch >= ‘a‘ && ch <= ‘f‘)||
(ch >= ‘A‘ && ch <= ‘F‘)||
ch == VK_BACK || ch == VK_DELETE||
nChar == 01 || nChar == 03 || //ctrl + a c
nChar == 24 || nChar == 22 //ctrl + x v
) { CEdit::OnChar(nChar, nRepCnt, nFlags); } else { return; } }
代码中红色部分是实现 复制粘贴全选剪切的功能;
进过实践发现重写 PreTranslateMessage() 不能实现复制粘贴剪切的功能,可以实现全选功能,根据最上边Ctrl组合键ASCII码 来添加自己需要的功能.
原文地址:https://www.cnblogs.com/2018shawn/p/9325772.html