刚在坛子里搜了一遍,没找到类似问题。
我以前在一个基于对话框的工程中用过List Control这个控件,那时把它放到主对话框中,然后在OnInitDialog()方法中把它创建出来。代码如下(pList为CListCtrl类型的指针):
pList=(CListCtrl* )GetDlgItem(IDC_BOOKMARK_LIST);
DWORD dwListStyle = pList->GetExtendedStyle();
dwListStyle |= LVS_EX_FULLROWSELECT;
pList->SetExtendedStyle(dwListStyle);
pList->InsertColumn(0, "名称", LVCFMT_CENTER|LVCFMT_LEFT, 36);
pList->InsertColumn(1, "编码", LVCFMT_CENTER|LVCFMT_LEFT, 87);
pList->InsertColumn(2, "主页", LVCFMT_CENTER|LVCFMT_LEFT, 200); pList->SetBkColor(RGB(250,250,250));
pList->SetTextColor(0x000000);
pList->SetTextBkColor(RGB(250,250,250));现在我又新建了一个新的单文档工程,在子对话框中放置了List Control控件,在子对话框的Create方法中用同样的方法创建时,发现控件并没有显示出来。而在构造函数中创建时却出现ASSERT错误,调试发现是WINOCC.P中的ASSERT(::IsWindow(m_hWnd))错误。请问,正确的创建方法是什么?
我以前在一个基于对话框的工程中用过List Control这个控件,那时把它放到主对话框中,然后在OnInitDialog()方法中把它创建出来。代码如下(pList为CListCtrl类型的指针):
pList=(CListCtrl* )GetDlgItem(IDC_BOOKMARK_LIST);
DWORD dwListStyle = pList->GetExtendedStyle();
dwListStyle |= LVS_EX_FULLROWSELECT;
pList->SetExtendedStyle(dwListStyle);
pList->InsertColumn(0, "名称", LVCFMT_CENTER|LVCFMT_LEFT, 36);
pList->InsertColumn(1, "编码", LVCFMT_CENTER|LVCFMT_LEFT, 87);
pList->InsertColumn(2, "主页", LVCFMT_CENTER|LVCFMT_LEFT, 200); pList->SetBkColor(RGB(250,250,250));
pList->SetTextColor(0x000000);
pList->SetTextBkColor(RGB(250,250,250));现在我又新建了一个新的单文档工程,在子对话框中放置了List Control控件,在子对话框的Create方法中用同样的方法创建时,发现控件并没有显示出来。而在构造函数中创建时却出现ASSERT错误,调试发现是WINOCC.P中的ASSERT(::IsWindow(m_hWnd))错误。请问,正确的创建方法是什么?
pList = new CListCtrl;
pList->Create(
WS_CHILD|WS_VISIBLE|LVS_REPORT|LVS_ALIGNTOP| LVS_EDITLABELS| LVS_AUTOARRANGE| LVS_SHOWSELALWAYS ,
CRect(10,10,400,200), this, 1001);.....在view的onsize,
if(pList) pList->MoveWindow(0,0,cx,cy);view的构造函数 pList=0;view 的 DESTROY 函数 delete pList;
用第2种方法处理list的事件,如单击事件应该象这样#define ID_LIST 1001 跟创建list指定的id一样。。上面是1001
ON_NOTIFY(NM_CLICK, ID_LIST, OnClickList1)
窗口都还没创建你去使用窗口消息肯定出错嘛
你再仔细找找?那个WM_INITDIALOG?
因为有言在先,要给striking送50分,他可不是我的马甲啊。
结贴时系统反馈:贴子回复次数大于跟给分次数 。这是怎么回事?
明天结贴!睡觉先,祝jasonshark好梦。