问题标签 [cdialog]

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 回答
1705 浏览

c++ - MFC从父级捕获控件的子级消息而不为子级创建类处理程序?

我有一个名为CDialogParent的向导创建的 CDialog ,然后创建一个子对话框模板IDD= IDD_CHILD_DLG1,在这个子对话框中我放了一个按钮IDC_BTN1(我不为这个孩子创建类处理程序)。

通常,我需要为子级创建新的类处理程序CDialogChild并添加消息映射,例如:

我想通过在 CDialogParent 中声明消息映射来捕获子对话框的控件消息 IDC_BTN1 的问题,例如

如何在不创建新的类处理程序的情况下做到这一点?感谢帮助!

0 投票
0 回答
134 浏览

mfc - DoModal 创建对话框时出现错误代码 1407

当资源从另一种语言加载时,我无法创建 MFC 对话框。如果语言是英语,则会创建对话框。我在对话框中添加了一个字符串,CLASS "Singleton Application"。在代码中,我用这个类名做了一个 RegisterClass。我也在设置正确的 AfxSetResourceHandle。如果我删除这个“CLASS”条目,我就可以用其他语言创建对话框。任何指针都会有所帮助。

0 投票
1 回答
237 浏览

c++ - CDialog::Create () 方法在 vista windows 7 32 位 PC 上失败

CDialog::Create() 在 Win7 32 位 PC 上失败,因为对话框具有 Richedit 控件。

一旦我从对话框中删除该控件,它就被创建了,但我需要 Richedit 控件。

为什么当我使用 Richedit 控件时 CDialog::Create() 会失败?我也叫“ AfxInitRichEdit2()

0 投票
1 回答
1143 浏览

mfc - CDialog 到 CView

所以我有一个MFC基于应用程序,它主要来自CDialog,带有一些控件等。

由于某些原因,它需要托管在另一个应用程序中,使用基于CView.

所以必须有某种方式......CDialog在容器类中托管这个东西,使用CView.

容器类对我关闭。它需要一个CView,但我可以修改基于对话框的应用程序。

有没有一种简单的方法可以从CDialog基础迁移到CView基础,我需要看看什么。我对 MFC 不是很熟练,这个问题可能听起来很模糊,但这就是我所拥有的。

任何帮助将不胜感激......谢谢。

0 投票
0 回答
558 浏览

c++ - 如何在 mfc cpp 中使用树视图控件创建一个透明的 CDialog

我想让我的对话框与树控件和附加到它的列表框一样透明。我经历了很多样本​​,我能够做到。

对话框和树控件透明:

对话框的其余控件通过以下方式透明:

我在这里面临的问题是,我的对话框连接到一个停靠窗格,当我用鼠标在屏幕上从其固定位置拖动它时,它会失去这种透明度。

此外,当我向右拖动以增加水平尺寸时,它不会正确更新对话框。如果我使用OnPaint()它,它会更新和停靠相同的颜色设置,但不能应用透明度。

我还尝试在 VS2010 中创建示例 mfc 项目并使用:

如果我在这里误解了什么,请指导我。我想我已经使用了所有组合的方式。但是没有其他选择可以一次性完成。

0 投票
1 回答
2883 浏览

c++ - 基于 CDialog 的应用程序是否应该设置 AfxGetApp()->m_pMainWnd

编辑:

我需要先研究一些奇怪的东西,有什么办法可以“搁置”这个问题吗?

原来的:

我正在使用基于 CDialog 的 GUI 处理现有代码库。该应用程序包含一个 CDialog“MainWindow”,它使用 CDialog.DoModal 生成其他 CDialog“SubWindow”。当显示子窗口、主窗口块等时,这确实有效。

当我们从“SubWindow”调用 AfxMessageBox 时,MainWindow 重新启用并获得焦点。

调试到 AfxMessagebox 显示,该函数获取 mainWindow 并重新启用它。这会导致许多不同的错误。使用 ::MessageBox 可以正常工作,但是我们有大约 50 个不同的 SubWindows,如果可能的话,我只想做一些小的本地化更改。

C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\atlmfc\src\mfc\appui1.cpp

在我们的入口点,我们做这样的事情:

首选方式是什么?我应该评论该行以使成员保持为空吗?

还是会导致任何副作用?

我想(尚未测试)我也可以设置

在 subDlg.DoModal() 之前并在之后重置它,但这也意味着更改 50 个不同的文件,每个子窗口一个。

MFC 是否依赖于 m_pMainWnd,还是应该让它保持为 NULL?谢谢。

编辑:

我尝试将 MainWindow 传递给 SubWindow 的构造函数,但无济于事。

这是 MainWindow 重新启用的地方: 在此处输入图像描述

这是 MFC 找到 MainWindow 的地方: 在此处输入图像描述 我需要手动设置 m_pActiveWnd 吗?

(题外话:我喜欢有可用的 mfc 源代码。)

编辑2:

MFC 应用程序实际上是一个 DLL,可以通过两种方式调用它:由简单的 loader.exe 加载,或由任何其他大型应用程序加载。此其他应用程序也可能使用 MFC,因此可能有两个不同的 CWinApp 对象。

如果由loader.exe加载,则不会出现错误。

0 投票
1 回答
1059 浏览

c++ - How to enable shadow for Owner Drawn Dialog

I am using owner drawn dialog. I like to give the shadow for my sub-dialog. Is it possible?

Thank in advance.

0 投票
4 回答
10348 浏览

visual-c++ - CDialog 和 CDialogEx 的区别

CDialog 和 CDialogEx 有什么区别?我决定使用 CDialog,因为如果 Dlg 派生自 CDialogEx,我无法将 m_pMainWnd 分配给 Dlg。

如果不使用表单向导提供的 CDialogEx,我可能会遇到哪些问题?

如何分配从 CDialogEx 派生的 m_pMainWnd 变量?

0 投票
1 回答
181 浏览

internet-explorer - My IE crashes on EndDialog and DoModal on another new dialog

I am opening a CDialog(CAxDialogImpl) using m_nRet = DoModal();

On this dialog I have an options button. When I click on this options button, I need to close this existing dialog and open another dialog (my options dialog). In order to close the existing dialog, I first call EndDialog(m_nRet) and then call DoModal() again to open my options dialog.

I am able to successfully close and reopen another dialog. However, when I try to close this new options dialog, my IE page in the background refreshes with a message:

A problem with this webpage caused Internet Explorer to close and reopen the tab.

I am new to this technology and would appreciate your help. Thank you!

0 投票
1 回答
3171 浏览

winapi - 多模态期间调试断言失败

我刚刚开始CDialog上课。当我尝试执行以下代码时,调试断言失败。

我创建了一个CDialogEx名为 dialog 的对话框资源和类。我得到的错误是“调试断言失败!

程序:...pp_projects\ConsoleApplication1\Debug\ConsoleApplication1.exe 文件:f:\dd\vctools\vc7libs\ship\atlmfc\include\afxwin1.inl 行:24" 谁能给我一个解决方案?