首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MFC控件在运行时的唯一标识符

MFC控件在运行时的唯一标识符
EN

Stack Overflow用户
提问于 2017-03-10 19:08:06
回答 1查看 354关注 0票数 0

我让同一组控制组的CDialog重复10次。有很多逻辑,所以我重构了对话框,只有1个CDialog,但重复了10次。

因此,不是有10个带有ID的编辑框:

代码语言:javascript
复制
    IDD_DIALOG DIALOGEX 0, 0, 680, 347
    STYLE DS_SETFONT | WS_CHILD
    FONT 10, "Segoe UI", 0, 0, 0x1
    BEGIN
        EDITTEXT    IDC_EDT_NAME1,34,226,80,14,ES_AUTOHSCROLL|ES_READONLY
        ...
        EDITTEXT    IDC_EDT_NAME10,34,226,80,14,ES_AUTOHSCROLL|ES_READONLY
    END

现在我有了这个:

代码语言:javascript
复制
    IDD_DIALOG DIALOGEX 0, 0, 680, 347
    STYLE DS_SETFONT | WS_CHILD
    FONT 10, "Segoe UI", 0, 0, 0x1
    BEGIN
        EDITTEXT    IDC_EDT_NAME,34,226,80,14,ES_AUTOHSCROLL|ES_READONLY
    END

但我在屏幕上复制了10次。到目前为止,good...my的问题是,我需要识别屏幕中的控件才能使用自动化测试工具,并且所有10个编辑框的控件ID总是相同的。除了控件ID之外,控件中是否有任何属性可用于唯一标识控件?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2017-03-10 21:04:55

使用单独编号的子对话框,然后将控件放在子对话框中。请使用WS_CHILD。

使用此技巧,您还可以确定孩子的父对象。

在代码项目中,您可以找到如何在对话框中嵌入子对话框的示例和要求。

https://www.codeproject.com/Articles/4408/Creating-embedded-dialogs-in-MFC

另一种方法是在创建控件后设置新的is。CWnd::SetDlgCtrlID将执行此操作。YOu可以通过这种方式保持它们的唯一性

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42716916

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档