没有对应Document的CFormView为何创建后没有调用OnInitialUpdate,而且无法使用CListCtrl?
我自己从CMDIChildWnd继承了一个新窗口类CfrmExamType,同时从CFormView继承了一个CfvExamType.
在CfrmExamType中定义了一个CfvExamType的指针,并且在它的OnCreate中创建了这个CfvExamType的FormView. 接下来我在FormView的资源中,加入了一个CListCtrl,然后在CfvExamType(FormView)的OnInitialUpdate中写入如下代码:
m_lcExamType.InsertColumn(0,"编号",LVCFMT_RIGHT,40);
m_lcExamType.InsertColumn(1,"考试类型",LVCFMT_CENTER,100);
m_lcExamType.InsertColumn(2,"培训费用",LVCFMT_RIGHT,60);
m_lcExamType.InsertColumn(3,"考试费用",LVCFMT_RIGHT,60);
m_lcExamType.InsertColumn(4,"培训时长",LVCFMT_RIGHT,60);
m_lcExamType.InsertColumn(5,"需要证书",LVCFMT_CENTER,60);
然后在MDI主窗口的菜单“考试类型"的OnCommand事件中以此CfrmExamType创建了一个窗口,但是发现OnInitialUpdate没有被调用,请问这是怎么回事?
另,我试着在FormView上加一个按钮,并且在按钮的OnClicked事件中写入以上同样的代码:则代码一执行就出现错误。若我在按钮中的代码改为:
DWORD dwListStyle;
CRect rListRect(10,10,400,500);
m_lcExamType.Create(WS_CHILD|WS_VISIBLE|WS_BORDER|LVS_REPORT, rListRect, this, IDC_LC_EXAMTYPE); //没有这个语句就一定会出运行时错误
dwListStyle=m_lcExamType.GetStyle();
dwListStyle|= LVS_EX_GRIDLINES |LVS_EX_FULLROWSELECT|LVS_SHOWSELALWAYS|LVS_EX_HEADERDRAGDROP;
m_lcExamType.SetExtendedStyle(dwListStyle);
m_lcExamType.InsertColumn(0,"编号",LVCFMT_RIGHT,40);
m_lcExamType.InsertColumn(1,"考试类型",LVCFMT_CENTER,100);
m_lcExamType.InsertColumn(2,"培训费用",LVCFMT_RIGHT,60);
m_lcExamType.InsertColumn(3,"考试费用",LVCFMT_RIGHT,60);
m_lcExamType.InsertColumn(4,"培训时长",LVCFMT_RIGHT,60);
m_lcExamType.InsertColumn(5,"需要证书",LVCFMT_CENTER,60);
m_lcExamType.UpdateWindow();
则代码执行后可以看到ListCtrl的确是添加了几个栏,但是除了滚动条能响应鼠标之外,其它部位都不响应鼠标,也就是加了Item之后,Item都无法选择。
注意:我没有采用Document/View结构。
1.是否不采用这种结构,FormView创建时就不会调用OnInitialUpdate?
2.如果我采用Document/View结构,CListCtrl的使用就完全正常,这到底是什么回事?
还请高手提示!