0

我正在使用 MFC 并且有一个主框架,它从工具栏接收 WM_PASTE、WM_COPY 消息等。我想要做的是将此消息传递给具有焦点的 CPaneDialog,因为这是我希望粘贴文本的位置。

我已经弄清楚了如何使用以下方法将消息发送到正确的视图:

void CMainFrame::OnEditPaste()
{
  GetFocus()->SendMessage(WM_PASTE, 0);
}

我现在要做的是询问表单是否可以接收粘贴消息。我想我可以通过传递命令 ui 消息来做到这一点......但我该怎么做呢?

void CMainFrame::OnUpdateEditPaste(CCmdUI *pCmdUI)
{
  if(GetFocus())
  {
    GetFocus()->???
  }
}

如果有更好的方法来做到这一点,那么也请告诉我。

我努力了

ON_UPDATE_COMMAND_UI(ID_EDIT_PASTE, &CDerivedPaneDialog::OnUpdateEditPaste)

在我派生的 CPaneDialog 中,但这不起作用。

4

1 回答 1

3

MFC 使用命令路由来获取命令(和 UI 更新)到可以处理它们的代码。如果你修复了路由,这应该处理粘贴命令和它的 UI 更新。

本文介绍默认路由

本文介绍如何更改路由

基本上,您OnCmdMsg在框架中覆盖并OnCmdMsg在窗格中调用 以查看它是否要处理消息。如果没有,则调用基类进行标准处理。

于 2013-03-13T20:21:54.157 回答