MFC实现CTRL C、CTRL V等功能

MFC实现CTRL C、CTRL V等功能

1、重载虚函数PreTranslateMessage

对键盘消息进行处理

BOOL CProjectAttrFormView::PreTranslateMessage(MSG* pMsg)
{
	if (pMsg->message == WM_KEYDOWN)//处理按键按下消息
	{
		if (GetKeyState(VK_CONTROL) & 0x80)//判断CTRL键是否是被按下的状态
		{
			SendMessage(pMsg->message, pMsg->wParam, pMsg->lParam);//发出按键消息
		}
	}

	return CFormView::PreTranslateMessage(pMsg);
}

2、响应按键按下消息
判断按下的键,发出对应的不同的系统消息,拷贝WM_COPY…

void CProjectAttrFormView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
	switch (nChar)
	{
	case 'C':
		if (GetFocus())
		{
			GetFocus()->SendMessage(WM_COPY, 0, 0);//发出拷贝消息
		}
		break;
	case 'V':
		if (GetFocus())
		{
			GetFocus()->SendMessage(WM_PASTE, 0, 0);
		}
		break;
	default:
		break;
	}

	CFormView::OnKeyDown(nChar, nRepCnt, nFlags);
}
发布了5 篇原创文章 · 获赞 4 · 访问量 4449

猜你喜欢

转载自blog.csdn.net/qq_41806386/article/details/88680755