对于TabCtrl_InsertItem
,我们是否需要保持pszText
成员点到有效的内存或将操作系统复制文本,以便我们可以直接清除文本?
TCITEM tcItem = { TCIF_TEXT }; CString strText; for (int i=0; i<3; i++) { strText.Format(_T("Tab %d"), i+1); tcItem.pszText = strText; // option 1 tcItem.pszText = _tcsdup(strText); // option 2 TabCtrl_InsertItem(i, &tcItem); }
我们怎么知道未来这个function和其他function是正确的? 我无法在MSDN中find它。
操作系统将把字符串复制到内部数据结构。 您不需要维护支持字符数组。 函数调用完成后,您可以将其释放。
一般来说,任何接收字符串的Windows API函数都是这种情况。 你是对的,它没有明确地在MSDN文档中说明,但大多数Windows开发人员已经知道这一点。 如果不是这样,MSDN 将显式调用。 我从头到尾想不出一个例子 – 如果它发生的话,这是非常罕见的。
这个示例, 如何在主窗口中创建一个选项卡控件 ,将建议您添加选项卡后不需要保持内存。
只要补充,即使文档不明确,通常也很容易找到示例。