问题标签 [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++ - 如何通过 PostMessage 发送字符串?
在我的应用程序中,我想从不同的线程向对话框发送消息。我想将 std::exception 派生类引用传递给对话框。
像这样的东西:
我想在我的对话框中接收消息并显示其中的错误 the_exception.error_string()
我想通过std::string the_exception.error_string()
使用 PostMessage 也可以。
mfc - 我似乎无法将列标题添加到继承的 MFC 对话框中的列表框中。怎么了?
我有一个继承自 CDialog 类的 CStdDlg。在 CStdDlg 对话框中,我有一个列表框 (m_lcList1)、编辑框 (m_ceEdit1)、一个单选按钮 (m_rbButton2) 和按钮 OK、Cancel 和 Button1。
我正在尝试创建另一个名为 CDerivedDlg 的类,它继承自 CStdDlg。我想使用 CStdDlg 中的所有内容,但来自 CDerivedDlg。这是一个愚蠢的测试应用程序,但我需要的东西就像这是一个真正的应用程序。
我将在下面显示所有代码。问题:每当我尝试将列标题添加到列表框中时,问题就会不断出现。m_hWnd = NULL
谁能告诉我怎么了?我真的很感激。谢谢你。
window - 如何从 CDialog 派生类获取窗口句柄?
有没有办法从 CDialog 派生类(如 CWnd::m_hWnd 成员)中检索窗口句柄?
谢谢
mfc - Visual C++ 6.0 - 派生的 CDialog 类中的 OnInitDialog 不起作用
我创建了一个简单的 MFC appwizard 对话框项目。我使用类向导创建了一个基于 CDialog 的名为 CMyDlg 的新类。然后我进入消息映射屏幕并双击 WM_INITDIALOG 条目以自动创建 CMyDlg::OnInitDialog() 处理程序。
我遇到的问题是 CMyDlg::OnInitDialog() 不会调用。我在那里放了一个断点,它根本不会调用。父对话框的 OnInitDialog() 方法被调用,但它不会调用 CMyDlg::OnInitDialog() 方法。
有什么特别需要做的吗?
我已经设法实现了一种解决方法,即从父对话框的 OnInitDialog() 方法发送我自己的消息并在 CMyDlg 中处理它但是..我确定这不是这样做的方法..
多谢你们。我已将虚拟项目上传到下面的链接。尝试构建项目,您会发现 CMyDlg::OnInitDialog() 从未被调用。
我按照上面的建议删除了 IDD 枚举和构造函数,但它根本没有任何区别。没有CMyDlg dlg;dlg.DoModal() 调用作为主对话框本身,它从 CMyDlg 派生,而不是通常的 CDialog 类。
我还没有解决这个问题,所以任何帮助将不胜感激。
干杯
c++ - 使用 SW_MAXIMIZE 时在对话框中锚定按钮
这应该是一个简单的:
我有一个带有 2 个按钮的 CDialog。该对话框始终使用全屏打开(无标题栏\状态等...)m_pMainWnd->ShowWindow(SW_MAXIMIZE);
我希望我的按钮捕捉到屏幕的边缘。
没有调整大小或任何东西。
c++ - 如何显示非模态 CDialog?
有人能告诉我如何在 MFC 的 Visual c++ 6.0 中创建一个非模态对话框并显示它吗?我写了这段代码:
但它阻止我的应用程序显示对话框。我不知道是否存在任何方法或其他方式来做到这一点。
谢谢
wpf - 将 MFC CDialog 放入 WPF 表单中
我们正在将 MFC 应用程序移植到 WPF,并且可能没有时间移植整个应用程序。MFC 应用程序有许多基于 CDialog 的窗口,我们正在考虑将其中一些窗口留在 MFC 中,并将它们显示在 WPF 窗口中,以便我们可以从 WPF 控制它们的模式。
有没有一种简单的方法可以做到这一点?如果没有,你能推荐另一种方法来处理这个问题吗?
谢谢,
分裂者
c++ - 每个循环可能会或可能不会运行 CDialog 的无限线程
我正在开发一个 MFC 项目,我需要一个单独的循环,该循环将连续运行或每隔几秒钟运行一次,并且每次它可能需要也可能不需要运行 Dialog 来获取用户的一些输入。我正在考虑使用 AfxBeginThread,但从我所读到的内容来看,它实际上不适用于连续循环。
visual-c++ - 在 CDialog 类型的子窗体之间传递数据
我有一个 MS Visual C++ 2005 项目,我试图在其中创建一个主对话框,其中包含一个专门用于显示可选子窗体对话框的部分。每个子表单的大小相同,但布局不同。使用组合框控件执行选择。我搜索了实现此功能的最佳方法,并遇到了这个类,该类是有人在 1999 年开发的,用于处理主对话框中的子对话框:
http://www.codeproject.com/KB/dialog/childdlg.aspx
附加修改:
http://www.codeproject.com/KB/dialog/childdlg.aspx?msg=1287#xx1287xx
该代码非常适合选择和显示各种子表单,但我似乎无法将数据从一个子表单传递到另一个子表单。具体来说,每个子表单都由几个编辑控件组成。我希望用户能够在 Subform #1 上的编辑控件中输入一个值,并在 Subform #2 上的编辑控件或静态文本控件中回显该值。
我尝试通过使用子窗体对话框类(名为 CSubFormType 和 CDialog 的子类)的成员函数来实现这一点,该函数将在取消对数据输入编辑控件(即 Box1a)的焦点时执行。
无效 CSubFormType::OnEnKillfocusBox1a(){
}
用于直接调用 OnEnKillfocusBox1a 的 CSubFormType 的消息映射是:
ON_EN_KILLFOCUS(IDC_Box1a, &CSubFormType:: OnEnKillfocusBox1a)
或间接通过:
ON_BN_CLICKED(IDOK, &CSubFormType::OnBnClickedOk) // CSubFormType::OnBnClickedOk 然后调用 OnEnKillfocusBox1a
我遇到的问题是:
1) ON_BN_CLICKED(IDOK, &CSubFormType::OnBnClickedOk) 在将数据输入 Box1a 后按 Enter 键时不会被调用。而是调用主对话框的 OnBnClickedOk 成员函数。
2) 当 CSubFormType::OnEnKillfocusBox1a 确实被执行时(通过鼠标单击其他地方),它能够将 Box1a 中输入的值回显到同一子表单 #1 上的 Box1b,但不会将值回显到子表单 #2 上的 Box2。
任何关于我需要做什么来解决这些问题或实现相同通用功能的更好方法的任何指导都将不胜感激。
正在使用的主对话框的组合框选择成员函数:
void CMain::OnCbnSelchange() { int selection;
}
c++ - 从 CDialog 派生的对话框在 DoModal (MFC/C++) 之后返回 -1
我创建了一个从 CDialog 派生的 Dialog(MFC 会自动执行此操作),但我必须重写该OnInitDialog
方法来初始化 ComboBox:
该方法FillInCombo
调用 PCSC 类以使用所有可用的智能卡读卡器填充此组合。
但是,在调试时会发生奇怪的行为。在尝试选择组合上的项目时,它会自动关闭(它实际上会生成一个 OnClose 事件)并且 DoModal 返回 -1。
然后,接下来,除非我清理解决方案并重新构建它,否则应用程序永远不会再次正确加载。
感谢您对此提供任何可能的帮助。
稍后编辑:我意识到问题是由于组合框而出现的。我不确定为什么。我用 ListBox 替换它,我没有遇到麻烦。