gpt4 book ai didi

c++ - 委派 OnUpdate ... MFC 中来自 CMainFrame 的消息

转载 作者:行者123 更新时间:2023-11-28 00:48:15 25 4
gpt4 key购买 nike

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

我已经想出了如何将消息发送到正确的 View ,方法是:

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 中,但这不起作用。

最佳答案

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

这篇文章描述了the default routing .

这篇文章描述了how to change the routing .

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

关于c++ - 委派 OnUpdate ... MFC 中来自 CMainFrame 的消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15391892/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com