问题标签 [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.
c++ - MFC从父级捕获控件的子级消息而不为子级创建类处理程序?
我有一个名为CDialogParent的向导创建的 CDialog ,然后创建一个子对话框模板IDD= IDD_CHILD_DLG1,在这个子对话框中我放了一个按钮IDC_BTN1(我不为这个孩子创建类处理程序)。
通常,我需要为子级创建新的类处理程序CDialogChild并添加消息映射,例如:
我想通过在 CDialogParent 中声明消息映射来捕获子对话框的控件消息 IDC_BTN1 的问题,例如:
如何在不创建新的类处理程序的情况下做到这一点?感谢帮助!
mfc - DoModal 创建对话框时出现错误代码 1407
当资源从另一种语言加载时,我无法创建 MFC 对话框。如果语言是英语,则会创建对话框。我在对话框中添加了一个字符串,CLASS "Singleton Application"。在代码中,我用这个类名做了一个 RegisterClass。我也在设置正确的 AfxSetResourceHandle。如果我删除这个“CLASS”条目,我就可以用其他语言创建对话框。任何指针都会有所帮助。
c++ - CDialog::Create () 方法在 vista windows 7 32 位 PC 上失败
CDialog::Create() 在 Win7 32 位 PC 上失败,因为对话框具有 Richedit 控件。
一旦我从对话框中删除该控件,它就被创建了,但我需要 Richedit 控件。
为什么当我使用 Richedit 控件时 CDialog::Create() 会失败?我也叫“ AfxInitRichEdit2() ”
mfc - CDialog 到 CView
所以我有一个MFC
基于应用程序,它主要来自CDialog
,带有一些控件等。
由于某些原因,它需要托管在另一个应用程序中,使用基于CView
.
所以必须有某种方式......CDialog
在容器类中托管这个东西,使用CView
.
容器类对我关闭。它需要一个CView
,但我可以修改基于对话框的应用程序。
有没有一种简单的方法可以从CDialog
基础迁移到CView
基础,我需要看看什么。我对 MFC 不是很熟练,这个问题可能听起来很模糊,但这就是我所拥有的。
任何帮助将不胜感激......谢谢。
c++ - 如何在 mfc cpp 中使用树视图控件创建一个透明的 CDialog
我想让我的对话框与树控件和附加到它的列表框一样透明。我经历了很多样本,我能够做到。
对话框和树控件透明:
对话框的其余控件通过以下方式透明:
我在这里面临的问题是,我的对话框连接到一个停靠窗格,当我用鼠标在屏幕上从其固定位置拖动它时,它会失去这种透明度。
此外,当我向右拖动以增加水平尺寸时,它不会正确更新对话框。如果我使用OnPaint()
它,它会更新和停靠相同的颜色设置,但不能应用透明度。
我还尝试在 VS2010 中创建示例 mfc 项目并使用:
如果我在这里误解了什么,请指导我。我想我已经使用了所有组合的方式。但是没有其他选择可以一次性完成。
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加载,则不会出现错误。
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.
visual-c++ - CDialog 和 CDialogEx 的区别
CDialog 和 CDialogEx 有什么区别?我决定使用 CDialog,因为如果 Dlg 派生自 CDialogEx,我无法将 m_pMainWnd 分配给 Dlg。
如果不使用表单向导提供的 CDialogEx,我可能会遇到哪些问题?
如何分配从 CDialogEx 派生的 m_pMainWnd 变量?
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!
winapi - 多模态期间调试断言失败
我刚刚开始CDialog
上课。当我尝试执行以下代码时,调试断言失败。
我创建了一个CDialogEx
名为 dialog 的对话框资源和类。我得到的错误是“调试断言失败!
程序:...pp_projects\ConsoleApplication1\Debug\ConsoleApplication1.exe 文件:f:\dd\vctools\vc7libs\ship\atlmfc\include\afxwin1.inl 行:24" 谁能给我一个解决方案?