gpt4 book ai didi

c++ - 消息映射 MFC : Inheriting multiple message maps

转载 作者:行者123 更新时间:2023-11-30 04:04:36 24 4
gpt4 key购买 nike

我正在使用 MFC100、VS2010、MDI。

我已经摆脱了 CPreviewView 的基本功能。

我希望它的行为与我的 CMyView 非常相似(这是一个 CView)

CMyView 和 CMyPreviewView 不在同一个类继承路径中。

所以我想同时继承CPreviewView消息映射和CMyView消息映射。目前,它仅继承 CPreviewView 消息映射。

BEGIN_MESSAGE_MAP(CMyPreviewView, CPreviewView)
//{{AFX_MSG_MAP(CMyPreviewView)
ON_COMMAND(AFX_ID_PREVIEW_CLOSE, OnPreviewClose)
ON_COMMAND(AFX_ID_PREVIEW_PRINT, OnPreviewPrint)
ON_UPDATE_COMMAND_UI(ID_WINDOW_NEW, OnUpdateWindowNew)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()

有什么想法吗?我看到了类似的东西

ALT_MSG_MAP(UINT msgMapID)

但这仅适用于 ATL。我可以复制并粘贴我的整个 CMyView 消息映射,但这真的很困惑,因为它有 300 多个处理程序。

最佳答案

将消息映射放入一个单独的 .h 文件中,并将其#include 放入两个类中。

BEGIN_MESSAGE_MAP(CMyPreviewView, CPreviewView)
//{{AFX_MSG_MAP(CMyPreviewView)
ON_COMMAND(AFX_ID_PREVIEW_CLOSE, OnPreviewClose)
ON_COMMAND(AFX_ID_PREVIEW_PRINT, OnPreviewPrint)
ON_UPDATE_COMMAND_UI(ID_WINDOW_NEW, OnUpdateWindowNew)

#include "SharedViewMessageMap.h"

//}}AFX_MSG_MAP
END_MESSAGE_MAP()

关于c++ - 消息映射 MFC : Inheriting multiple message maps,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23684227/

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