我遇到以下代码问题
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的标头控件部分。有谁知道我做错了什么?任何帮助将不胜感激。
答案 0 :(得分:1)
我注意到你在CView派生类中创建了一个控件。请注意,id必须从值AFX_IDW_PANE_FIRST开始。否则它会失败。只需谷歌AFX_IDW_PANE_FIRST,您就会找到解释原因。
所以,只需用以下代码替换你的行:
TempCtrl.Create(dwStyle, CRect(0, 0, 0, 0), this, AFX_IDW_PANE_FIRST);
答案 1 :(得分:0)
我在创建时使用WS_VISIBLE样式解决了上述问题,但我仍然不明白为什么会这样。