我让同一组控制组的CDialog重复10次。有很多逻辑,所以我重构了对话框,只有1个CDialog,但重复了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次。到目前为止,good...my的问题是,我需要识别屏幕中的控件才能使用自动化测试工具,并且所有10个编辑框的控件ID总是相同的。除了控件ID之外,控件中是否有任何属性可用于唯一标识控件?
谢谢。
发布于 2017-03-10 21:04:55
使用单独编号的子对话框,然后将控件放在子对话框中。请使用WS_CHILD。
使用此技巧,您还可以确定孩子的父对象。
在代码项目中,您可以找到如何在对话框中嵌入子对话框的示例和要求。
https://www.codeproject.com/Articles/4408/Creating-embedded-dialogs-in-MFC
另一种方法是在创建控件后设置新的is。CWnd::SetDlgCtrlID将执行此操作。YOu可以通过这种方式保持它们的唯一性
https://stackoverflow.com/questions/42716916
复制相似问题