MFC edit control控件禁止中文输入

项目中的小工具要求用户在EditControl输入信息时不能使用中文。通过调用WindowsAPI中的Imm相关函数,如ImmGetContext、ImmAssociateContext和ImmReleaseContext,可以实现禁用该编辑框的中文输入法。在OnInitDialog函数中对指定的EditControl调用DisableIME函数即可实现此功能。
摘要由CSDN通过智能技术生成

项目中需要做一个小工具,其中涉及到用户在edit control中输入信息,但是不能输入中文,找到一个方案:参考链接

在代码中添加如下函数实现

#include <Imm.h>
// Function for Disabling IME  禁用中文输入法
void DisableIME(HWND hWnd)
{
	HIMC m_hImc;    // 全局或者成员变量
	//HWND hWnd = pWnd->GetDlgItem(IDC_EDIT1)->m_hWnd;
	if (hWnd && IsWindow(hWnd))
	{
		// Get input context for backup. 
		m_hImc = ImmGetContext(hWnd);
 
		// Remove association the testing 
		if (m_hImc)
			ImmAssociateContext(hWnd, NULL);
 
		// Release input context
		ImmReleaseContext(hWnd, m_hImc);
		::SetFocus(hWnd);
	}
}

对话框初始化函数中进行调用,如下:

BOOL CLabelCmpDlg::OnInitDialog()
{
	CDialogEx::OnInitDialog();
	DisableIME(pWnd->GetDlgItem(IDC_EDIT1)->m_hWnd);  //禁用中文输入法
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值