问题标签 [sdi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
383 浏览

c++ - 如何设置 CDockable 窗格的高度和宽度

我想设置可停靠窗格的高度和宽度。我尝试将 CRect 参数中的值传递给 OnCreate 函数,但这不起作用。任何人都可以帮助解决这个问题

0 投票
1 回答
186 浏览

mfc - 带有样式子的 MFC 无模式对话框

我有 SDI 结构程序,我想CDialog用子样式创建并CFormView用作其父样式。因为我想CFormView用作“容器”。

现在我遇到两个问题。

  1. 我无法将 setmunu 设置为CDialog(因为对话框样式是子样式)
  2. 对话框表现异常(对话框有CEdit,但不能输入...)

我该如何解决这个问题?

0 投票
2 回答
2009 浏览

c++ - MFC SDI GetActiveView() 总是返回 NULL

CFormViews我需要在 MFC SDI C++ 项目之间切换的帮助。我已经挖掘了很长时间,无法弄清楚为什么我的代码不起作用。通过搜索互联网(包括这个网站),我发现了几个通过向 MainFrm.cpp(CMainFrame继承自 的对象CFrameWnd)添加两个函数来切换表单的教程。其中一个传递了我要切换到的表单的 id,然后获取指向活动视图的指针,并从那里运行一些其他代码。但是,GetActiveView()总是返回一个NULL指针值。我知道有一个活动视图,因为我正在单击活动表单中的按钮。我的代码如下。这只是我所指的功能。它位于 MainFrm.cpp(启动新 MFC 项目时创建的默认窗口文件)中。

到目前为止,我已经尝试了 Microsoft 知识库中有关如何获取当前CDocumentCView从任何地方的代码,我尝试先获取活动框架,然后GetActiveView从调用CFrameWnd,然后我尝试了下面的代码。一切都无济于事。我显然对 MFC 知之甚少,无法弄清楚。如果您需要我提供更多信息,请询问。我可能没有提到我应该拥有的一切。我为一个学校项目选择了 MFC,在我知道我可以让这些表单工作之前,我无法继续创建 UML 或编写任何其他代码。

0 投票
1 回答
359 浏览

mfc - Visual Studio 2017 MFC SDI 调试断言 OnCreate

我想用 Visual Studio 2017 创建一个 MFC 单文档应用程序。

创建新项目时,我进行了以下配置:

配置 MFC SD

配置 MFC SD

配置 MFC SD

配置 MFC SD

如果我现在构建并运行新创建的项目而不对代码进行任何更改,它会立即以Debug Assertion Error. 这是我得到的消息:

在此处输入图像描述

看来问题OnCreate出在MainFrame.cpp. 函数将pContext变量与NULL函数相结合m_wndSplitter.Create

这是类的OnCreateOnCreateClient功能MainFrame

0 投票
1 回答
1025 浏览

c++ - C++ MFC SDI 复制/粘贴不起作用

我用功能区创建了一个简单的 MFC SDI 应用程序。文档的视图是带有 on Edit 控件的 FormView。

如果我现在使用 CTRL+V 在编辑控件中粘贴一些文本,则不会发生任何事情。使用 CTRL+C 复制编辑控件内的文本也是如此。如果我在编辑控件内右键单击,我可以使用上下文菜单。但是我怎样才能启用快捷方式?CTRL + C 等在加速器列表中。如果我将以下内容添加到 MainForm

和函数本身

如果我现在按 CTRL+C,MessageBox 会弹出。但我无法将编辑控件的文本复制到剪贴板。如果选择了不同的控件并按下了 CTRL+C,我怎么能在从编辑文本中复制文本和执行其他操作之间进行选择(例如,如果我在编辑控件中选择文本,它应该被复制到剪贴板。如果我选​​择例如树视图中的项目仅应显示一个弹出窗口)?

0 投票
1 回答
78 浏览

mfc - 如何处理从视图类发送到对话框的消息?

我有手视图、文档和大型机的 SDI 应用程序。在视图类中,我有打开另一个对话框的按钮,比如说租船对话框。我想打开该对话框并从视图发送初始值以在对话框中分配一些变量,但我无法在对话框类中捕获消息事件。下面作为我的代码:

在租船对话框中,我处理如下消息

租船功能

我在 OnSetShowTemp() 函数处设置了断点,但它不能跳到那里。任何想法将不胜感激。

0 投票
0 回答
41 浏览

html - 如何停止 CHtmlView 驱动类的点击事件?

在 FormView 上右侧疼痛视图的 SDI 应用程序中,我使用 ChtmlView Navigate 功能显示 HTML 预览。当我在 HTML 预览中打开 doc/docx 文件时,它是可编辑的。我想防止点击事件,所以没有人可以编辑它。

如何停止CHtmlView驱动类的点击事件?

我试试

但是,当我单击 Chtmlview 容器中的预览文件(doc/docx)时,它不是由它的父驱动类处理CHtmlPreview::PreTranslateMessage(MSG* pMsg),也不是它的父CFormView驱动类PreTranslateMessage(MSG* pMsg)。控制不转到这些功能。

我的问题是:
CHtmlView 类和焦点

我也尝试覆盖CHtmlView::OnTranslateAccelerator,但这在我CHtmlPreview的基类为 ChtmlView 的类中不可用。

谢谢

0 投票
2 回答
788 浏览

c++ - 如何通过单击 MainFrame 内的按钮来更改 MFC 视图

我想通过单击窗口内的按钮来更改呈现的视图, 如下所示。我的项目设置:

  1. 我制作了一个没有 Doc/View 支持的 MFC 项目 (SDI)。
  2. 我在设计器中制作了另外两个视图并向它们添加了类。新的视图类派生自CFormView. 我将新视图类的构造函数和析构函数更改为公开的。

  3. 将它们作为指向 MainFrm.h 的指针添加:

  1. 我像这样更改了MainFrm.cpp 的OnCreate(),OnSetFocus()OnCmdMsg()Method :(允许展示我用 Designer 制作的 FormView)

现在我的问题来了!我在第一个呈现的视图上有一个按钮,如果你点击它,视图应该会改变。我在 Designer 中使用事件处理程序创建了以下函数:

如果我在 MainFrm.cpp 类中处理它,例如使用菜单按钮,那没问题......工作正常:

我试图在其中编写一个函数CMainFrame并在其中调用该函数,CMainView::OnBnClickedButton1()但我不知道如何获取当前的 MainFrm 对象。MainFrm 上的指针或其成员CMainView不起作用。

我搜索了几天的红色教程来解决我的问题。我还尝试使用 Doc/View 支持,如下所示: https ://docs.microsoft.com/en-us/cpp/mfc/adding-multiple-views-to-a-single-document?view=vs-2019但我不知道在哪里正确调用 switchView()。

也许任何人都可以帮助...

0 投票
1 回答
354 浏览

sql - 存储过程和sql控制台之间的hana行为是否不同

我尝试从存储过程启动流程图。流程图使用物理表(在 hana 上)作为数据源和数据目标中的表类型。流程图定义了两个变量。我在 sql 控制台和动态 sql (EXEC-Statement) 中尝试了该语句,并且两者都有效。在存储过程中使用以下语句:

返回以下错误消息:

我是否缺少存储过程中的特殊行为?

感谢您的意见。

0 投票
0 回答
50 浏览

mfc - 从 STRG-ALT-ENTF 返回后,Windows MFC SDI 应用程序的客户端区域冻结

我正在使用 Visual Studio 2017,并且我创建了一个带有 Direct2D 的 MFC SDI 应用程序用于绘图。所以我在听

用于绘制到应用程序客户区的消息。一切正常,直到我点击 STRG-ALT-ENTF 并从 Windows 锁定屏幕返回。然后客户区被“冻结”,即不刷新。然而,应用程序本身仍然是响应式的。当我在

OnDraw2d(WPARAM wParam, LPARAM lParam){..}

Visual Studio 中断,因此很明显所有绘图实际上都应该发生。但是,应用程序如下所示:

使用 Direct2D 的 MFC SDI 应用程序的客户区域中没有图形更新

有趣的是,只有当我点击 STRG-ALT-ENTF 时鼠标指针位于客户区域内时才会发生这种情况。如果在外面,就没有问题。

这是一个错误还是我错过了什么?

问候,迈克尔