写了一个集成自CListCtrl的类,CListCtrl->CBaseList->CListBill在一个窗体中定义了这个类的成员变量 CListBill *m_plistBill
然后再InitialDialog()中构造:
CRect rect_nlist(10,300,700,650);
this->GetClientRect(&rect_nlist);
rect_nlist.top=140;
rect_nlist.left+=10;
rect_nlist.right-=10;
rect_nlist.bottom=300;
this->m_plistBill=new CListBill();
m_plistBill->Create(WS_CHILD|WS_VSCROLL
|WS_VISIBLE|LVS_REPORT|WS_BORDER,
rect_nlist,this,ID_NEWLISTBILL); this->m_plistBill->ModifyStyle(LVS_EDITLABELS, 0L); //禁止标题编辑
m_plistBill->ModifyStyle(0L, LVS_REPORT); //设为Report类型
m_plistBill->ModifyStyle(0L, LVS_SHOWSELALWAYS); //始终高亮度被选中的表项
m_plistBill->ModifyStyle(0L, LVS_NOSORTHEADER); m_plistBill->ModifyStyle( LVS_OWNERDRAWFIXED,0L);
m_plistBill->SetExtendedStyle( LVS_EX_FULLROWSELECT | //允许整行选中
LVS_EX_GRIDLINES | //画出网格线
LVS_EX_FLATSB //扁平风格的滚动条
); m_plistBill->Create(WS_CHILD|WS_VSCROLL
|WS_VISIBLE|LVS_REPORT|WS_BORDER,
rect_nlist,this,ID_NEWLISTBILL); 并且制定了 parent指针为当前窗体的this可是当在这个窗体出现模态对话框的时候 例如MessageBox() 或者 是 DoModal();时候发现出现了很多异常错误。
调试后发现: //m_plistBill 此时地址为 0x005925b0
CDlgtest *dlg=new CDlgtest();
dlg->DoModal();
//m_plistBill 地址变成了0x00597c80
地址发生了偏移,而且在 dlg->DoModal(); 中没有其他产生消息的操作。会是什么原因啊!!!!! 我要挂了!!!! 困扰多天了,始终查不出原因来!
然后再InitialDialog()中构造:
CRect rect_nlist(10,300,700,650);
this->GetClientRect(&rect_nlist);
rect_nlist.top=140;
rect_nlist.left+=10;
rect_nlist.right-=10;
rect_nlist.bottom=300;
this->m_plistBill=new CListBill();
m_plistBill->Create(WS_CHILD|WS_VSCROLL
|WS_VISIBLE|LVS_REPORT|WS_BORDER,
rect_nlist,this,ID_NEWLISTBILL); this->m_plistBill->ModifyStyle(LVS_EDITLABELS, 0L); //禁止标题编辑
m_plistBill->ModifyStyle(0L, LVS_REPORT); //设为Report类型
m_plistBill->ModifyStyle(0L, LVS_SHOWSELALWAYS); //始终高亮度被选中的表项
m_plistBill->ModifyStyle(0L, LVS_NOSORTHEADER); m_plistBill->ModifyStyle( LVS_OWNERDRAWFIXED,0L);
m_plistBill->SetExtendedStyle( LVS_EX_FULLROWSELECT | //允许整行选中
LVS_EX_GRIDLINES | //画出网格线
LVS_EX_FLATSB //扁平风格的滚动条
); m_plistBill->Create(WS_CHILD|WS_VSCROLL
|WS_VISIBLE|LVS_REPORT|WS_BORDER,
rect_nlist,this,ID_NEWLISTBILL); 并且制定了 parent指针为当前窗体的this可是当在这个窗体出现模态对话框的时候 例如MessageBox() 或者 是 DoModal();时候发现出现了很多异常错误。
调试后发现: //m_plistBill 此时地址为 0x005925b0
CDlgtest *dlg=new CDlgtest();
dlg->DoModal();
//m_plistBill 地址变成了0x00597c80
地址发生了偏移,而且在 dlg->DoModal(); 中没有其他产生消息的操作。会是什么原因啊!!!!! 我要挂了!!!! 困扰多天了,始终查不出原因来!
解决方案 »
- 很头疼的Release版本的问题
- vc操纵word问题:查找到图片后如何得到该图片的长宽信息
- 这样的进度条应该如何实现啊??????????在线等.....急啊,拜托各位了.
- 修改dll
- 请教高手一个画图的问题
- 谁知道Grid控件怎么将屏幕上的值传给变量?
- 如何将CFormView派生类显示在对话框上
- 请教:再次请教密码框屏蔽“粘贴”功能的问题。立即结帐,谢谢!
- 在vc中怎样对文件中的数据进行操作
- ClistCtrl ICON模式下,拖拽成功后,arrange后各项的索引值不会改变,难道需要遍历然后删除插入才行吗?有没有什么好的方法?
- 在WINDOWS窗体的TEXTBOX中限制只能输入小数点和数字
- ActiveX的接口中void*用什么数据类型?
dlg->DoModal();
ba w4 0x005925b0
关键不是这个,所有MessageBox()的 前面和后面地址也会发生改变!搞不懂!!!! 怎么会这样,应该没有什么东西进行这块的操作啊,也没有数组