我是vc ++的新手。我想通过使用成员变量或控件的资源ID来了解哪种方法是正确有效的处理控件。
m_Name.SetWindowTextW(_T("xyz"));
or
SetDlgItemText(IDC_EDIT2,_T("xyz"));
or
CWnd* cwd = GetDlgItem(IDC_EDIT2);
cwd->SetWindowTextW(_T("xyz"));
答案 0 :(得分:2)
有效的方法是创建一个控制成员变量。您可以在资源编辑器中右键单击控件并选择Add Variable。
每次将GetDlgItem与资源ID一起使用时,它会遍历所有子控件以查找具有指定ID的控件。完成每个GetDlgItem调用后,此迭代效率很低。
答案 1 :(得分:1)
除非你确实存在性能瓶颈,否则你应该关注从长远来看哪些更易于维护而不是效率。在SetWindowText()操作中可能没有什么可担心的。
你必须提出像
这样的问题1)你要设置窗口文本多少次?只是一次或多次?如果一次,你应该只使用SetDlgItemText()。
2)除了设置文本之外,您还要进行其他操作吗?如果是这样,那么可能使它成为一个成员变量。如果没有,那么将它作为成员变量并对窗口进行子类化有什么意义呢?为了节省毫秒,用户永远不会注意到?