我的以下代码有问题
int CMyView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CView::OnCreate(lpCreateStruct) == -1)
{
return -1;
}
DWORD dwStyle = LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP | WS_CLIPSIBLINGS | WS_CHILD;
CMFCListCtrl TempCtrl;
TempCtrl.Create(dwStyle, CRect(0, 0, 0, 0), this, IDC_FILTERLIST);
CMFCHeaderCtrl& HeaderCtrl = TempCtrl.GetHeaderCtrl();
if (!::IsWindow(HeaderCtrl.GetSafeHwnd()))
{
AfxMessageBox("Failed to create CMFCListCtrl properly!");
}
....
CMFCListCtrl的 header 控件部分未正确创建/初始化。有人知道我在做什么错吗?任何帮助,将不胜感激。
最佳答案
我注意到您正在CView派生的类中创建一个控件。请注意,该ID必须从值AFX_IDW_PANE_FIRST开始。否则它将失败。只需在Google AFX_IDW_PANE_FIRST上搜索,您就会找到原因的解释。
因此,只需将您的行替换为:
TempCtrl.Create(dwStyle, CRect(0, 0, 0, 0), this, AFX_IDW_PANE_FIRST);
关于c++ - 如何在另一个窗口中正确创建CMFCListCtrl?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13842238/