我是vc++的新手。我想知道通过使用控件的成员变量或资源id来处理控件的正确和有效的方法。
m_Name.SetWindowTextW(_T("xyz"));
or
SetDlgItemText(IDC_EDIT2,_T("xyz"));
or
CWnd* cwd = GetDlgItem(IDC_EDIT2);
cwd->SetWindowTextW(_T("xyz"));
发布于 2015-06-09 05:39:47
有效的方法是创建一个控制成员变量。您可以在资源编辑器中通过右键单击控件并选择Add变量来完成此操作。
每次在资源ID中使用GetDlgItem时,它都会遍历所有的子控件,以找到具有指定ID的子控件。对于每个GetDlgItem调用,这种迭代都是效率低下的。
发布于 2015-06-09 07:30:21
您应该关心的是,什么是长期可维护的,而不是效率,除非您真的有一个性能瓶颈。在SetWindowText()操作中,这可能不是什么值得担心的事情。
你必须问这样的问题
1)你打算设置多少次窗口文本?就一次还是多次?如果有一次,您可能应该只使用SetDlgItemText()。
2)除了设置文本之外,你还会做其他操作吗?如果是这样的话,那么很可能将它作为一个成员变量。如果不是,那么将其作为成员变量并对窗口进行子类化有什么意义?为了节省一毫秒,用户永远不会注意到?
https://stackoverflow.com/questions/30732553
复制相似问题