问题标签 [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 投票
2 回答
184 浏览

windows - 拦截 CDialog 创建

我有一个相当大的应用程序,它显示了许多不同的 MFC CDialog 派生对话框窗口。所有的对话框都显示在一个与此类似的中心功能中:

现在我需要在每个对话框的 OnInitDialog 方法中调用一个函数。它在技术上不需要在 OnInitDialog 中,但最好在对话框可见之前。

蛮力方法是遍历代码并找到每个最后一个对话框并将函数调用添加到 OnInitDialog 方法(如果有,如果没有,添加一个)。但似乎必须有一种更优雅的方式......

请注意,dlg 实际上不是 CDialog,而是从它派生的东西。

有什么想法、技巧或技巧吗?我不是在修补消息映射,但希望找到更清洁/更安全的东西。

0 投票
1 回答
1607 浏览

c++ - CDialog ShowWindow问题

我有一个 SDI 应用程序。在应用程序中有一个无模式对话框,用于显示一些消息,例如在工作期间与服务器通信。问题是,当对话框的父窗口设置为主框架时,ShowWindow 方法无法按预期工作。似乎对话框被主框架覆盖。如果我在 ShowWindow 调用旁边放置一个 Sleep 调用,我可以看到该对话框。当睡眠结束时,对话框消失。如果我不设置对话框的父级,则 ShowWindow 调用正常工作。但我确实想设置对话框的父窗口。那么如何解决呢?

0 投票
2 回答
2906 浏览

c++ - 从 MFC DLL 显示对话框

我加载了表单,但只有没有功能的按钮

那么我如何加载表单的完整功能而我没有 DLL 源代码

0 投票
2 回答
4543 浏览

c++ - 避免在调整大小时移动其控件的对话框上闪烁

我有一个弹出对话框(CDialog)处理WM_CTLCOLOR消息以自行着色。它有一些使用 OwnerDraw 绘制自己的控件(如位图按钮)。它还有一个控件,可以显示一个占对话框 70% 大小的图像。

当用户重新调整对话框大小时,对话框中的一些控件应该重新定位(而不是重新调整大小)它还涉及调整对话框内图像的大小。由于图像的重新调整大小使整个过程变慢,控件的单独重新定位会导致视觉效果闪烁。

我需要摆脱这些。一种想法是将控件作为中间对话框的子级,该中间对话框是原始弹出对话框的子级。因此,当重新调整大小时,我只能重新定位对话框,而不是单独移动每个控件。(重新定位只发生在一个方向(xy),因此移动中间对话框就足够了。

由于它涉及一些编码工作,因此在此之前,我需要回答以下问题:

  • 这行得通吗?
  • 如果是,这种方法涉及的复杂性是什么?
  • 有没有更好的办法?

请帮忙!

0 投票
1 回答
384 浏览

windows-7 - MFC 气动摇窗消息

我正在开发一个内置于 MFC 的程序。

当我摇动我的 CFormView 时,我遇到了这种奇怪的情况。第一次正确最小化所有内容,但是当我在恢复所有窗口时第二次摇动它时,CFormView 中的一个 CDialog 将向后移动,但它应该在前面。

我怎样才能捕捉到第二次摇晃的事件?它向我的 CDialog 发送什么消息?

我可以在我的消息映射上声明它吗?

我在互联网上找不到任何关于它的信息。

0 投票
1 回答
1954 浏览

visual-studio-2010 - VC10 中的 CDialog 内存泄漏

我们正在从 VC8 升级到 VC10,并且发现了一些似乎与 CDialog 相关的内存泄漏。最简单的示例是使用以下代码演示的,该代码使用只有多个按钮的 CDialog。在 VC10 中会泄漏,但在 VC8 中不会:

内存使用量不断上升,我们有大约 30 个按钮的示例对话框泄漏了 10s 的 Mb。

请注意,上面是一个测试示例,其中我们剥离了所有对话处理代码,在我们的实际代码中,我们有一个派生类并使用 PostNcDestroy()。

奇怪的是,以下代码示例都没有在 VC8 或 VC10 中泄漏:

我们在这里缺少什么?

0 投票
2 回答
1455 浏览

c++ - 如何从任务栏中隐藏 CDialogEX?(MFC C++)

我有主机,当有人按下按钮时,我打开一个 CDialogEX。

打开后,它是一个空的任务栏选项卡,没有标题或图标...

我希望它作为主框架的子窗口打开,并且没有任务栏选项卡。

我尝试过使用样式和东西,但没有任何效果。

有任何想法吗?

0 投票
1 回答
635 浏览

windows - 如何在 CDialog 弹出窗口上显示系统菜单?

我有一个基于 CDialog 的应用程序。在 Visual Studio 资源编辑器中,我的对话框的属性显示样式设置为“Popup”,系统菜单值为“True”。但是,当我运行我的应用程序时,没有系统菜单;如何让系统菜单显示?我需要先用 SetIcon() 设置图标吗?

这是资源文件中我的对话框的定义:

0 投票
2 回答
562 浏览

c++ - 如何更改 CDialog 图标以响应鼠标悬停?

如何更改鼠标悬停时的应用程序图标?我想在我的 CDialog 的系统菜单中放置一些菜单项,并且我希望当用户将鼠标悬停在图标上时突出显示它以指示它是一个用户界面组件(类似于最新版本的 firefox 如何在其中包含 firefox 菜单橙色,当您将鼠标悬停在它上面时,它会突出显示)。

更新

“应用程序图标”是指系统菜单图标。此外,我刚刚遇到 CMFCRibbonApplicationButton 类,虽然不是系统菜单,但看起来也很有希望。

0 投票
3 回答
1471 浏览

mfc - 如何从 CDialog::OnInitDialog 或此函数结束后立即结束对话框 mfc 应用程序?

在我的应用程序的一种情况下,我想在对话框的 OnInitDialog 中或在此函数之后立即结束应用程序。有什么办法吗?

我尝试使用 Windows 消息——在 OnInitDialog 调用 SendMessage 和在已发送消息的处理程序中调用 OnClose——但它没有达到我的预期,因为对话框仍然出现。