int CEditableList::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CListCtrl::OnCreate(lpCreateStruct) == -1)
return -1; //简历列表框上面的编辑框
m_listedit.Create(ES_AUTOHSCROLL|WS_CHILD|ES_LEFT|ES_WANTRETURN|WS_BORDER,CRect(10, 10, 100, 100), this , 2);
m_listedit.ShowWindow(SW_HIDE);
return 0;
}以上CEditableList是我写的继承于CListControl的类,为啥我运行的时候没有调用这个函数,不是说窗体建立的时候就会运行一次的吗?我把编辑控件建立在LISTCONTROL之上,是不是说LISTCONTROL就是它的父窗口,我之所以这么写,就是想THIS指的是编辑控件的父窗口LISTCONTROL。现在问题是为什么没有执行呢??
{
if (CListCtrl::OnCreate(lpCreateStruct) == -1)
return -1; //简历列表框上面的编辑框
m_listedit.Create(ES_AUTOHSCROLL|WS_CHILD|ES_LEFT|ES_WANTRETURN|WS_BORDER,CRect(10, 10, 100, 100), this , 2);
m_listedit.ShowWindow(SW_HIDE);
return 0;
}以上CEditableList是我写的继承于CListControl的类,为啥我运行的时候没有调用这个函数,不是说窗体建立的时候就会运行一次的吗?我把编辑控件建立在LISTCONTROL之上,是不是说LISTCONTROL就是它的父窗口,我之所以这么写,就是想THIS指的是编辑控件的父窗口LISTCONTROL。现在问题是为什么没有执行呢??
CEditableList类所对应的控件窗口,也就是 List Ctrl 建立了吗?
m_EditableList.Create(...);
这样才会触发 OnCreateDDX 的话只能在 PreSubclassWindow 这个虚函数里处理
我不明白的是既然我没有create,那类里面的函数为什么都能用。我的listcontrol控件是从资源里拽出来创建的,这难道不算数吗?他的子类CEditableList现在各个函数我也在使用中,怎么说没create呢?子类和CLISTCONTROL类之间到底什么关系,我都糊涂了
1、不要把这个控件放在对话框模板上,把类定义成对话框类的成员变量,在OnInitDialog中用代码来Create你的控件,这时就能收到OnCreate调用。
2、把OnCreate中的创建编辑框的代码转移到对话框的OnInitDialog中执行。