1、CEditUI 禁止使用中文输入法

在 CEditUI::DoEvent 函数中,添加代码:

if(m_bOnlyEnglishChar && m_pWindow && m_pWindow->GetHWND() != NULL)
ImmAssociateContext(m_pWindow->GetHWND(), NULL); //禁用中文输入法,只可输入键盘上的现有字符
在 CEditUI::SetAttribute 函数中添加:
else if (_tcscmp(pstrName, _T("englishChar")) == )
SetEnglishChar(_tcscmp(pstrValue, _T("true")) == );
//m_bOnlyEnglishChar 为自定义bool变量,在SetAttribute 函数中设置,不再赘述。

2、CEditUI 不显示默认的右键菜单

在 CEditWnd::HandleMessage 函数中,添加代码:

     else if (uMsg == WM_CONTEXTMENU)
{
if (m_pOwner && !m_pOwner->IsShowContextMenu())
{
bHandled = TRUE;
return lRes;
}
bHandled = FALSE;
}

在 CEditUI::SetAttribute 函数中添加:

else if (_tcscmp(pstrName, _T("rightMenu")) == )
SetShowContextMenu(_tcscmp(pstrValue, _T("true")) == );
    void CEditUI::SetShowContextMenu(bool b) //默认右键菜单
{
m_bShowContextMenu = b;
}
bool CEditUI::IsShowContextMenu() //是否显示默认右键菜单
{
return m_bShowContextMenu;
}

3、CEditUI  中禁止粘贴 (即:不能使用 ctrl + v)

在函数 CEditWnd::HandleMessage 中,添加代码:

        else if (uMsg == WM_PASTE) //右键“粘贴”,或ctrl+v
{
if (m_pOwner && !m_pOwner->IsCanPaste()) //不能粘贴
return lRes;
bHandled = FALSE; //默认粘贴功能
}

在 CEditUI::SetAttribute 函数中添加:

else if (_tcscmp(pstrName, _T("paste")) == )
SetCanPaste(_tcscmp(pstrValue, _T("true")) == );
    void CEditUI::SetCanPaste(bool b)
{
m_bCanPaste = b;
}
bool CEditUI::IsCanPaste()
{
return m_bCanPaste;
}

通过以上三步,可以实现 CEditUI 中只能输入键盘上的符号,禁止输入中文全角字符,也不能复制粘贴其他来源的中文字符。

duilib CEditUI 禁止输入中文字符,禁止复制粘贴的更多相关文章

  1. Android EditText禁止复制粘贴

    1,自定义EditText package com.example.ui; import android.annotation.SuppressLint; import android.content ...

  2. android EditText禁止复制粘贴完整代码

    <!-- 定义基础布局LinearLayout --> <LinearLayout xmlns:android="http://schemas.android.com/ap ...

  3. [JavaScript] 怎么使用JS禁止复制粘贴

    1. 将彻底屏蔽鼠标右键,其实是禁止快捷菜单,因为不光右键可以弹出这个菜单,键盘上空格键右边的windows键也可以激活这个快捷菜单 <table border oncontextmenu=re ...

  4. js禁止复制粘贴

    1. oncontextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键,其实是禁止快捷菜单,因为不光右键可以弹出这个菜单,键盘上空格 ...

  5. js 禁止复制粘贴

    1. oncontextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键,其实是禁止快捷菜单,因为不光右键可以弹出这个菜单,键盘上空格 ...

  6. TextBox禁止复制粘贴和数字验证,小数验证,汉字验证

    验证小数 #region 验证小数 /// <summary> /// 验证小数 /// </summary> /// <param name="sender& ...

  7. IE屏蔽鼠标右键、禁止复制粘贴等功能

    <body oncontextmenu="return false" onselectstart="return false" ondragstart=& ...

  8. input 禁止 复制 粘贴 剪切 操作

    1.代码 <Input onCopy={(e)=>{ // 禁止拷贝 e.preventDefault(); }} onPaste={(e)=>{ // 禁止粘贴 e.prevent ...

  9. js 禁止复制粘贴全选

    // 取消右键菜单document.oncontextmenu = function(e){ var t = e || window.event; var elm = t.target || t.sr ...

随机推荐

  1. Postgresql数据库实用命令

    Postgresql 命令 pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start 启动数据库 cr ...

  2. vijos 1096 津津的储存计划

    题目描述 Description 津津的零花钱一直都是自己管理.每个月的月初妈妈给津津300元钱,津津会预算这个月的花销,并且总能做到实际花销和预算的相同. 为了让津津学习如何储蓄,妈妈提出,津津可以 ...

  3. STM32定时器的预装载寄存器与影子寄存器之间的关系【转】

    首先转载:   STM32定时器的预装载寄存器与影子寄存器之间的关系 本文的说明依据STM32参考手册(RM0008)第10版:英文:http://www.st.com/stonline/produc ...

  4. Oracle 存储过程入门(一)

    一,基本入门介绍 公司系统需要用到oracle,可是还没在项目用过oracle,好吧,从基本学起.有问题的地方,欢迎指导啊. 看创建存储过程的基本定义.注意,带有[]的都是可选的,可有可无的.只是语法 ...

  5. 【转载】TCP慢启动、拥塞避免、快速重传、快速回复

    转载自:TCP慢启动.拥塞避免.快速重传.快速回复 转自:http://blog.csdn.net/itmacar/article/details/12278769 感谢博主的辛勤成果! 为了防止网络 ...

  6. Spring中bean作用域属性scope

    关键字: spring中属性scope的prototype是什么意思   默认情况下,从bean工厂所取得的实例为Singleton(bean的singleton属性) Singleton: Spri ...

  7. Codeforces Round #225 (Div. 2) E. Propagating tree dfs序+-线段树

    题目链接:点击传送 E. Propagating tree time limit per test 2 seconds memory limit per test 256 megabytes inpu ...

  8. 关于express项目的创建与启动

    没有经常用,所以经常搞错, 创建express项目,需要新建一个文件夹名,这个文件名就是用来承载express的内容的, 好了.打开终端,cd至创建的文件夹之下. 也可以直接这样,如以下,admin为 ...

  9. bugfree 数据库配置 显示No such file or directory

    把数据库服务器  localhost   改成127.0.0.1 sudo vi /etc/hosts 增加: 127.0.0.1   localhost 127.0.0.1   你的hostname ...

  10. MSVC_代码优化

    测试环境: Win7x64 cn_visual_studio_2010_ultimate_x86_dvd_532347.iso qt-opensource-windows-x86-msvc2010_o ...