Visual c++ 运行时的MFC控件唯一标识符

Visual c++ 运行时的MFC控件唯一标识符,visual-c++,mfc,controls,Visual C++,Mfc,Controls,我对同一组对照重复了10次。有很多逻辑,所以我重构了对话框,使其只有一个1cDialog,但重复了10次 因此,与10个ID为的编辑框不同: 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|E

我对同一组对照重复了10次。有很多逻辑,所以我重构了对话框,使其只有一个1cDialog,但重复了10次

因此,与10个ID为的编辑框不同:

    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
现在我有这个:

    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次。到目前为止还不错…我现在的问题是,我需要识别屏幕中的控件以使用自动化测试工具,并且所有10个编辑框的控件ID始终相同。控件中是否有任何属性可以用来唯一标识控件ID之外的控件


谢谢。

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

有了这个技巧,你也可以确定孩子的父母

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

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

我的问题不是如何嵌入对话框…这已经实现并正在运行…我需要分别识别这些嵌入对话框中的每个控件。测试团队正在使用一个工具,通过使用ControlID识别所有控件,现在所有的id都被复制。更改了我的答案