问题标签 [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 回答
372 浏览

c++ - 从另一个对话框更改 CDialog 控件焦点

我正在尝试使用 PostMessage 从 CFormView 更改 CDialog 控件的焦点:

[CHelpView 继承自 CFormView。而m_wndDlg是一个CSampleDlg(继承自CDialog)对象]

对话框接收到消息,但 NextDlgCtrl 方法不会更改焦点。我意识到,如果我更改 PreTranslateMessage 方法,以便在按下 Return 键时,在对话框中,此 NextDlgCtrl 方法会在用户每次点击返回键(从对话框中)时正确更改焦点。然而,这是我无法通过另一个对话实现的。

有谁可能知道它背后的原因或任何提示或解决方法?

谢谢。

编辑:

这是 SPY++ 对话框的(部分)日志文件。

<01128> 0016013E R WM_GETDLGCODE fuDlgCode:0000

<01129> 0016013E P WM_KEYDOWN nVirtKey:00726574 cRepeat:2 ScanCode:00 fExtended:0 fAltDown:0 fRepeat:0 fUp:0

<01130> 0016013E S WM_NEXTDLGCTL wCtlFocus:(null) (下一个控件接收焦点) fHandle:False

<01131> 0016013E R WM_NEXTDLGCTL

<01132> 0016013E S WM_GETDLGCODE

0 投票
1 回答
575 浏览

mfc - MFC 切换单选按钮延迟

我有一个单选按钮,它是 CDialog 中的 CButton。当用户单击单选按钮时,将OnClickedRadioButton调用该函数。

在里面OnClickedRadioButton我通过调用这个函数来切换按钮:

当我编译和运行程序时: (i) 如果选中单选按钮,我可以单击它来清除它。(ii) 如果未选中单选按钮,我单击它并且没有任何反应。但是,如果我单击不同的程序(即 Visual Studio),然后单击 CDialog,则单选按钮会选中。

我已经查看并尝试了函数Cwnd::UpdateDialogControlsCwnd::UpdateData,但我无法让这些来解决我的问题。

0 投票
1 回答
705 浏览

c++ - 在 Visual C++ DLL 中包含 MFC 资源(CDialog-Form)

我正在尝试编译一个包含 CDialog 表单的 DLL。具体来说,我想包括包含布局和所有公共方法的资源。

主要目标是导出表单(及其方法)以在外部环境中使用它,而不会弄乱现有表单的 IDD。

我(一整天)的研究没有显示任何可能的解决方案,而且由于我是使用 MFC 编程 C++ 的新手,我不知道如何开始。

谢谢你的支持!

0 投票
1 回答
365 浏览

button - 如何在 Visual Studio 2013 中使用 CDialog 类启用按钮的属性页

在 Visual Studio 2008 中,可以从 CDialog 框的资源视图中双击一个按钮,然后直接转到将帮助我编辑其操作的代码。但是,在 2013 年,当我双击一个按钮时,会弹出一个“添加类向导”窗口。我只想编辑我的按钮的作用。我怎样才能做到这一点?在按钮的属性窗口中,“属性页面”按钮(扳手)被禁用,当我单击“控制事件”按钮(闪电)时,没有任何选择。提前致谢!

0 投票
1 回答
55 浏览

visual-c++ - 多级子级到 CDialog

我有一个 MFC 项目,其中有一个 CDialog 类扩展的子窗口,在其中我绘制了许多小部件,每个小部件都是 CStatic 类的扩展。现在我想向主窗口添加一个表面,在该窗口中绘制所有相同的小部件,但将其自身作为单个对象呈现在主窗口中,我可以随意移动并显示或隐藏。我怎样才能做到这一点?CStatic 可以是其他 CStatic 对象的父对象吗?

0 投票
1 回答
903 浏览

c++ - 为什么 GetWindowRect(rcWindow2) 中的 cx/cy 与输入 OnSize 的 cx/cy 不同?

我想在 CDialog 的 OnInitDialog 期间获取 cx 和 cy。

我可以使用以下代码执行此操作:

但是,OnInitDialog 中的 cx 和 cy 与进入 OnSize 的 cx 和 cy 不同:

来自 OnInitDialog:cx=417,cy=348

从 OnSize : cx=401, cy=310

看起来可能是边界,但我无法弄清楚。

关于如何在 OnInitDialog 中获得与输入 OnSize 相同的 xy 数据的建议将不胜感激。


遗产:

myDialog -> CDialog -> CWnd

0 投票
1 回答
2566 浏览

c++ - 在 MFC 应用程序中动态创建控件

根据Microsoft的这个链接,应该可以定义一个 CButton 并指定其父窗口(CDialog),而无需将 CButton 作为对话框的成员,但我做不到。

因此,如果 myButton 是 CDialog 派生 (myCDialog) 类的成员,则以下代码有效:

但是当我谈到动态创建时,我希望能够动态创建任意数量的按钮(我不能将它们定义为类成员,因为我不知道有多少!)

我在另一个类中尝试了以下代码,其中一个指向 myCDialog 作为父窗口的指针,类似于链接中显示的代码,但它失败了:

那么,如何创建动态控件而不将它们定义为 CDialog 类的成员呢?

0 投票
1 回答
734 浏览

c++ - 从 MFC CDialog 复制文本

我目前正在处理我继承的代码。有一个类(我将其称为 logWindow)继承自 CDialog。总的来说,logWindow 类创建一个窗口并打印出文本。

我需要做的是复制窗口中自动生成的文本。

我知道我需要某种鼠标和键盘监听器,但我对如何做到这一点以及如何选择文本有点迷茫。

我也有由同一个人编写的不同日志窗口的工作代码。该代码有一个继承自 CListbox 的类(我将其称为 copyList)。不幸的是,代码没有得到很好的文档记录或管理,因此很难弄清楚哪些函数与复制文本有关,哪些函数与自动滚动等其他事情有关。

如果这非常不具体,我深表歉意,因为我正在做的事情我可以发布的数量有限。我将尽可能多地更新问题。

0 投票
1 回答
584 浏览

menu - CMFCMenuButton 不关闭

我有CDialog一个CFMCMenuButton。当我打开它时,一切正常:

带有菜单按钮的 CDialog

当我单击其他地方关闭菜单时,就会出现问题。菜单似乎无法关闭,除非用户选择它的选项。如果我在键盘上按 Escape,对话框会自行关闭,这太激烈了;我真的希望它只关闭菜单。

我知道我可以通过将资源文件中的属性“OS Menu”设置为 True (或等效地分配其属性m_bOSMenu= TRUE)来解决这个问题。我会得到:

带有 OS Menu 属性设置为 TRUE 的菜单按钮的 CDialog

如图所示,后果是:

  • 我松开了图标(不是很重要)
  • 我失去了一些项目的禁用(重要)由OnInitMenuPopup(旁注:第二个菜单列也是由完成的OnInitMenuPopup,它看起来应该是)。如果用户单击这些选项,它们将起作用,但它们不应该。

我该如何解决这个问题?

0 投票
1 回答
237 浏览

c++ - 从 DLL 运行时 C++ CDialogEx 丢失 ParentWnd

我有一个情况。有一个巨大的应用程序(C++ MFC)。我编写了一个带有可停靠窗格的 .dll 模块。

窗格界面结构:

这就是我创建 DialogEx 的方式:

我在 CDialogEx::PreTranslateMessage 上得到断言。原因是当它得到它的父母

m_hWnd 不是 Wnd。但是 CDialog 看起来完全没问题,它有 m_pParentWnd,但不是 m_tabCtrl。

所以我的问题是:为什么 CDialogEx 不设置它的父级?!以及如何处理?!