问题标签 [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++ - 从另一个对话框更改 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
mfc - MFC 切换单选按钮延迟
我有一个单选按钮,它是 CDialog 中的 CButton。当用户单击单选按钮时,将OnClickedRadioButton
调用该函数。
在里面OnClickedRadioButton
我通过调用这个函数来切换按钮:
当我编译和运行程序时: (i) 如果选中单选按钮,我可以单击它来清除它。(ii) 如果未选中单选按钮,我单击它并且没有任何反应。但是,如果我单击不同的程序(即 Visual Studio),然后单击 CDialog,则单选按钮会选中。
我已经查看并尝试了函数Cwnd::UpdateDialogControls
和Cwnd::UpdateData
,但我无法让这些来解决我的问题。
c++ - 在 Visual C++ DLL 中包含 MFC 资源(CDialog-Form)
我正在尝试编译一个包含 CDialog 表单的 DLL。具体来说,我想包括包含布局和所有公共方法的资源。
主要目标是导出表单(及其方法)以在外部环境中使用它,而不会弄乱现有表单的 IDD。
我(一整天)的研究没有显示任何可能的解决方案,而且由于我是使用 MFC 编程 C++ 的新手,我不知道如何开始。
谢谢你的支持!
button - 如何在 Visual Studio 2013 中使用 CDialog 类启用按钮的属性页
在 Visual Studio 2008 中,可以从 CDialog 框的资源视图中双击一个按钮,然后直接转到将帮助我编辑其操作的代码。但是,在 2013 年,当我双击一个按钮时,会弹出一个“添加类向导”窗口。我只想编辑我的按钮的作用。我怎样才能做到这一点?在按钮的属性窗口中,“属性页面”按钮(扳手)被禁用,当我单击“控制事件”按钮(闪电)时,没有任何选择。提前致谢!
visual-c++ - 多级子级到 CDialog
我有一个 MFC 项目,其中有一个 CDialog 类扩展的子窗口,在其中我绘制了许多小部件,每个小部件都是 CStatic 类的扩展。现在我想向主窗口添加一个表面,在该窗口中绘制所有相同的小部件,但将其自身作为单个对象呈现在主窗口中,我可以随意移动并显示或隐藏。我怎样才能做到这一点?CStatic 可以是其他 CStatic 对象的父对象吗?
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
c++ - 在 MFC 应用程序中动态创建控件
根据Microsoft的这个链接,应该可以定义一个 CButton 并指定其父窗口(CDialog),而无需将 CButton 作为对话框的成员,但我做不到。
因此,如果 myButton 是 CDialog 派生 (myCDialog) 类的成员,则以下代码有效:
但是当我谈到动态创建时,我希望能够动态创建任意数量的按钮(我不能将它们定义为类成员,因为我不知道有多少!)
我在另一个类中尝试了以下代码,其中一个指向 myCDialog 作为父窗口的指针,类似于链接中显示的代码,但它失败了:
那么,如何创建动态控件而不将它们定义为 CDialog 类的成员呢?
c++ - 从 MFC CDialog 复制文本
我目前正在处理我继承的代码。有一个类(我将其称为 logWindow)继承自 CDialog。总的来说,logWindow 类创建一个窗口并打印出文本。
我需要做的是复制窗口中自动生成的文本。
我知道我需要某种鼠标和键盘监听器,但我对如何做到这一点以及如何选择文本有点迷茫。
我也有由同一个人编写的不同日志窗口的工作代码。该代码有一个继承自 CListbox 的类(我将其称为 copyList)。不幸的是,代码没有得到很好的文档记录或管理,因此很难弄清楚哪些函数与复制文本有关,哪些函数与自动滚动等其他事情有关。
如果这非常不具体,我深表歉意,因为我正在做的事情我可以发布的数量有限。我将尽可能多地更新问题。
menu - CMFCMenuButton 不关闭
我有CDialog
一个CFMCMenuButton
。当我打开它时,一切正常:
当我单击其他地方关闭菜单时,就会出现问题。菜单似乎无法关闭,除非用户选择它的选项。如果我在键盘上按 Escape,对话框会自行关闭,这太激烈了;我真的希望它只关闭菜单。
我知道我可以通过将资源文件中的属性“OS Menu”设置为 True (或等效地分配其属性m_bOSMenu= TRUE
)来解决这个问题。我会得到:
如图所示,后果是:
- 我松开了图标(不是很重要)
- 我失去了一些项目的禁用(重要)由
OnInitMenuPopup
(旁注:第二个菜单列也是由完成的OnInitMenuPopup
,它看起来应该是)。如果用户单击这些选项,它们将起作用,但它们不应该。
我该如何解决这个问题?
c++ - 从 DLL 运行时 C++ CDialogEx 丢失 ParentWnd
我有一个情况。有一个巨大的应用程序(C++ MFC)。我编写了一个带有可停靠窗格的 .dll 模块。
窗格界面结构:
这就是我创建 DialogEx 的方式:
我在 CDialogEx::PreTranslateMessage 上得到断言。原因是当它得到它的父母
m_hWnd 不是 Wnd。但是 CDialog 看起来完全没问题,它有 m_pParentWnd,但不是 m_tabCtrl。
所以我的问题是:为什么 CDialogEx 不设置它的父级?!以及如何处理?!