mfc输入栏禁用复制粘贴
MFC自带的CEdit
输入栏并没有限制拷贝粘贴功能,在一些特殊情况下并不方便使用。比如一般为了安全起见,密码输入栏禁止粘贴密码。这时候就需要我们自定义一个输入栏,微软提供了WM_PASTE
消息,因此只需要我们监听这个消息并做处理即可。下面给一个小的demo:
CPasswordEdit.h#
#pragma once
#include <afxwin.h>
class CPasswordEdit : public CEdit
{
public:
CPasswordEdit();
~CPasswordEdit();
protected:
afx_msg LRESULT OnPaste(WPARAM wParam, LPARAM lParam);
DECLARE_MESSAGE_MAP()
public:
void SetEnablePaste(BOOL bEnablePaste);
private:
BOOL m_bEnablePaste;
};
CPasswordEdit.cpp#
#include "CPasswordEdit.h"
CPasswordEdit::CPasswordEdit() {
m_bEnablePaste = TRUE;
}
CPasswordEdit::~CPasswordEdit() {
}
BEGIN_MESSAGE_MAP(CPasswordEdit, CEdit)
ON_MESSAGE(WM_PASTE, OnPaste)
END_MESSAGE_MAP()
LRESULT CPasswordEdit::OnPaste(WPARAM wParam, LPARAM lParam) {
if(m_bEnablePaste == TRUE)
{
return CEdit::DefWindowProc(WM_PASTE, wParam, lParam);
}
return S_OK;
}
void CPasswordEdit::SetEnablePaste(BOOL bEnablePaste) {
m_bEnablePaste = bEnablePaste;
}
调用SetEnablePaste(FALSE)
即可禁止粘贴内容到输入框。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南