vc变成中实现CTRL+C复制功能

我想在VC中实现CTRL+C组合键复制的功能,WINDOWS中本身有CTRL+C功能,我不想具体去实现该功能,而是想按下某件(比如回车键),就相当于摁下CTRL+C组合键... 我想在VC中实现CTRL+C组合键复制的功能,WINDOWS中本身有CTRL+C功能,我不想具体去实现该功能,而是想按下某件(比如回车键),就相当于摁下CTRL+C组合键,我想在重载的PreTranslateMessage中实现,具体代码如下:

BOOL CCtextDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if(pMsg->message == WM_KEYDOWN)
{
if(pMsg->wParam ==90)//这里90是表示想用z键代替CTRL+C键
{

pMsg->wParam=67;//这里却难住我了,如何将CTRL+C两键同时赋值给pMsg呢?????????

}
}

有其他方法更好了,可以以一键代替CTRL+C键

return CDialog::PreTranslateMessage(pMsg);
}{
return FALSE;//对话框内部控件可以接收到回车消息!!
//return TRUE;//对话框内部控件不可以接收到回车消息!!

}
}
上面代码粘贴错了,有点乱,以下是:

BOOL CCtextDlg::PreTranslateMessage(MSG* pMsg)
{
if(pMsg->message == WM_KEYDOWN)
{
if(pMsg->wParam ==90)//这里90是表示想用z键代替CTRL+C键
{

pMsg->wParam=67;//这里却难住我了,如何将CTRL+C两键同时赋值给pMsg呢?????????

}
}

return CDialog::PreTranslateMessage(pMsg);
}
展开
 我来答
DeepWay2024
推荐于2016-10-17 · TA获得超过397个赞
知道答主
回答量:65
采纳率:0%
帮助的人:80.5万
展开全部
你是想模拟替换按键吧,建议你直接发送剪贴版消息,更简便,代码如下:

BOOL CCtextDlg::PreTranslateMessage(MSG* pMsg)
{
if(pMsg->message == WM_KEYDOWN)
{
if(pMsg->wParam ==90)//这里90是表示想用z键代替CTRL+C键
{
if(GetFocus())
GetFocus()->SendMessage(WM_COPY, 0, 0);
return true;
}
}
return CDialog::PreTranslateMessage(pMsg);
}

附:
WM_COPY 复制
WM_CUT 剪切
WM_PASTE 粘贴
WM_CLEAR 清除
匿名用户
推荐于2018-05-17
展开全部
#pragma region CTRL+C模拟
static bool isCtrldown = false;
static bool iscdown = false;
#pragma endregion CTRL+C模拟

然后在wm_keydown和wm_keyup消息处理处加入下列代码:

case WM_KEYDOWN: // VK_DOWN
#pragma region
switch (wparam)
{
case VK_CONTROL: isCtrldown = true; break;
case 'C': iscdown = true; break;
break;
#pragma endregion

case WM_KEYUP: // VK_UP
#pragma region
switch (wparam)
{
case VK_CONTROL: isCtrldown = false; break;
case 'C': iscdown = false; break;
}
break;
#pragma endregion

接下来是响应wm_char的代码:

case WM_CHAR: // CHAR
#pragma region
switch (wparam)
{
case 0x03: // ETX
#pragma region
if (isCtrldown && isCtrldown)
PostMessage(hwnd, WM_COPY, 121, 0);
break;
#pragma endregion
}
break;
#pragma endregion

最后只要响应 wm_copy把数据复制到粘帖板就可以了。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
shen_yd
2009-06-08 · TA获得超过1334个赞
知道小有建树答主
回答量:384
采纳率:100%
帮助的人:244万
展开全部
使用Accelerator修改复制按钮,或者使用RegisterHotKey()来注册热键.使用UnregisterHotKey()来注销热键.
RegisterHotKey(m_hWnd,0xa001,VK_RETURN);
VK_RETURN为enter键
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
火驹
2009-06-08 · TA获得超过1447个赞
知道小有建树答主
回答量:6294
采纳率:0%
帮助的人:1723万
展开全部
if(wParam==(0x0d&VK_CONTROL))
使用&符号表示组合键
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式