如题
重载了一个CEdit,在OnChar里做了限制只能输入十六进制数,代码如下
void CHexEdit::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
if ((nChar >= 0x30 && nChar <= 0x39) ||
(nChar >= 'a' && nChar <= 'f') ||
(nChar >= 'A' && nChar <= 'F') ||
(nChar == 0x08))
{
CEdit::OnChar(nChar, nRepCnt, nFlags);
}
}
这样倒是只能输入十六进制数,可Ctrl+c Ctrl+v等操作都给屏蔽了,请问有什么办法解决呢?
重载了一个CEdit,在OnChar里做了限制只能输入十六进制数,代码如下
void CHexEdit::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
if ((nChar >= 0x30 && nChar <= 0x39) ||
(nChar >= 'a' && nChar <= 'f') ||
(nChar >= 'A' && nChar <= 'F') ||
(nChar == 0x08))
{
CEdit::OnChar(nChar, nRepCnt, nFlags);
}
}
这样倒是只能输入十六进制数,可Ctrl+c Ctrl+v等操作都给屏蔽了,请问有什么办法解决呢?
解决方案 »
- 画一个时钟的表针怎么画
- vc++ access 数据库 如何一起打包发布?
- vc 如何让每次生成工程的时候默认选择As a statically linked library?
- mfc 半透明位图
- 请问下CSocket的奇怪的问题
- vc字符串有没有sql 中like比较相似的功能啊 在线等待
- CString出现中文乱码,怎么回事?在线等?
- 询找 Visual Studio .NET 开发环境中的 docking功能?像 class view / solution explorer 窗口可靠在四边并有标签。
- 谁能帮我设计一个控件,我付钱
- 请教MediaPlayer方面的问题。
- 为什么会tcp传输的时候出现PUSH标志?
- 关于重载 +-*/操作符报错的问题.
void CHexEdit::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// 先取键盘状态看是否有ctrl 按下
short nks;
nks = GetKeyState(VK_CONTROL);
if (nks & 0x8000)
{
CEdit::OnChar(nChar, nRepCnt, nFlags);
}
else if ((nChar >= 0x30 && nChar <= 0x39) ||
(nChar >= 'a' && nChar <= 'f') ||
(nChar >= 'A' && nChar <= 'F') ||
(nChar == 0x08) ||
(nChar == 0x20))
{
CEdit::OnChar(nChar, nRepCnt, nFlags);
}
}