duilib CEditUI 禁止输入中文字符,禁止复制粘贴

摘要:
2.CEditUI不显示默认的右键菜单。在CEditWnd::HandleMessage函数中,添加代码:elseif{if(m_owner&&!

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")) == 0)
    SetEnglishChar(_tcscmp(pstrValue, _T("true")) == 0);
//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")) == 0)
    SetShowContextMenu(_tcscmp(pstrValue, _T("true")) == 0); 
    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")) == 0)
    SetCanPaste(_tcscmp(pstrValue, _T("true")) == 0); 
    void CEditUI::SetCanPaste(bool b)
    {
        m_bCanPaste = b;
    }
    bool CEditUI::IsCanPaste()
    {
        return m_bCanPaste;
    }

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

免责声明:文章转载自《duilib CEditUI 禁止输入中文字符,禁止复制粘贴》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Windows平台CUDA开发之前的准备工作【SpringCloud】SpringCloud Alibaba Nacos服务注册和配置中心下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

duilib中各控件响应的消息类型

消息 说明 Sender click 鼠标点击 CButtonUI dropdown 下拉显示 CComboUI headerclick 点击列标题 CListHeaderItemUI itemactivate   CListElementUI、CListContainerElementUI itemclick 单击选项 CList...

专题:DUILIB Win32 透明效果

Win32 透明效果相关基础知识 Layered Windows 分层窗口。这是Windows2000开始引入的概念,重新定义了窗口的Hit Testing方法,以前都是把窗口按rectangle的方式裁剪,而把窗口加上WS_EX_LAYERED的Style后就可以根据窗口的形状和像素 值进行Hit Testing,这样我们的不规则窗口就变成了真正意义上的...

duilib之源码分析

《duilib之源码分析》1 stdAfx.h [cpp]view plaincopy *lengthof(x)计算数组长度宏 *MAX两值最大 *MIN两值最小 *CLAMP(x,a,b)x在a,b之间则取x否则取最小 2 UIBase [cpp]view plaincopy *UI_WNDSTYLE_窗口风格属性 *UI_CLASS...

最新的一些在c或winapi下做界面的库

先把最近看到的一些收录一下,以后慢慢更新: 1、迅雷7的 "Bolt" 界面引擎(摘一段别人写的) 以下内容仅针对界面引擎。迅雷从5越到了7(其实6是存在的);迅雷7的一个显著改善是UI(User Interface - 用户界面)。 从官方博客文章看,界面被放在了特性的第一位,可见对界面的改善是一个重大升级。 关于用户界面的升级: 对于一个终端用户,关注...

基于wke封装的duilib的webkit浏览器控件,可以c++与js互交,源码及demo下载地址

转载请说明原出处,谢谢~~ 前些日子用wke内核封装了duilib的webkit浏览器控件,好多群里朋友私聊我希望可以我公布源码,今天把这个控件的源码和使用demo公布。其实这个控件封装起来没什么难度,我只是按照原来作者的demo,把相应的消息封装成duilib对应的。 在此首先要感谢wke内核的作者BlzFans以及soui2界面库的作者flyhigh,...

duilib入门问题集

问:如何把资源放入zip?答: 先SetResourcePath设置资源目录,再SetResourceZip设置压缩资源文件名问:如何设置窗体的初始化大小?答:设置XML文件的Window标签的size属性。问:如何设置鼠标可拖动窗体的范围大小?答:设置XML文件的Window标签的caption属性。问:如何设置窗体可以通过拖动边缘改变大小?答:在窗体创...