void CMyEditorView::OnButtonCar()
{
// TODO: 在此添加命令处理程序代码
UpdateData();//add
CMyEditorDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
CCarDlg MyCarDlg;
if(MyCarDlg.DoModal()==IDOK)
{
m_Car.SetCarValues (MyCarDlg.m_CarNumber ,MyCarDlg.m_CarType ,MyCarDlg.m_Color ,MyCarDlg.m_MaxSpeed );
pDoc- >AddCar (m_Car);
Invalidate();
} }
解决方案 »
- 【急】sqlite3在MFC中使用,sqlite3_get_table语句完全正确返回错误,求解释
- 这里的pConnection->Close()语句有无必要?
- 我想开发一程序,能得出当前WINDOWS运行的某一程序的进程名
- 用MC编译EventMessageFile的问题
- 高分求购ADO连接局域网内Access数据库的代码,分不够可以再加!!!
- 如何在多行编辑框中按行按列输出一个数组的值
- 个位老大,各位前辈,小弟向你们取经来了。希望你们不吝赐教!!!
- 高分求救,显示图片问题
- 大家帮推荐VC++方面的好书
- 一个编译时候的错误,谁来帮帮我?
- 请教:关于内存分配的问题
- ondraw和onpaint有什么区别
////////////////////////////////////
响应WM_PAIN消息,把输出部分写道OnPain()函数里。
顺便问下:CMyEditorView是否继承自CFormView(这就对了)
onpain和ondraw有什么区别,
别人说,在view里用ondraw
你文档的数据结构可能有问题,相关声明和定义贴出来。
#include "afxcoll.h"#include "Car.h"
class CMyEditorDoc : public CDocument
{
protected: // 仅从序列化创建
CMyEditorDoc();
DECLARE_DYNCREATE(CMyEditorDoc)
// 属性
public:// 操作
public:// 重写
public:
virtual BOOL OnNewDocument();
virtual void Serialize(CArchive& ar);// 实现
public:
virtual ~CMyEditorDoc();
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endifprotected:// 生成的消息映射函数
protected:
DECLARE_MESSAGE_MAP()
CObArray m_oaCars;
public:
short GetCount();
public:
CCar *GetCar(short nIndex);
public:
CCar *AddCar(CCar Car);
};
void CMyEditorDoc::Serialize(CArchive& ar)
{
// CEditView 包含一个处理所有序列化的编辑控件
reinterpret_cast<CEditView*>(m_viewList.GetHead())->SerializeRaw(ar);
}这个序列化用改不?
还有MaxSpeed输出总是0,第一项还输出不了,存盘再打开以前输入的数据也没了.
if(MyCarDlg.DoModal()==IDOK)
{
m_Car.SetCarValues (MyCarDlg.m_CarNumber ,MyCarDlg.m_CarType ,MyCarDlg.m_Color ,MyCarDlg.m_MaxSpeed );
pDoc- >AddCar (m_Car);
Invalidate();
}
//当执行OnDraw的时候,m_Car已经被释放了
short CMyEditorDoc::GetCount(void)
{
return m_oaCars.GetSize() ;
}CCar* CMyEditorDoc::GetCar(short nIndex)
{
return (CCar*)m_oaCars[nIndex];
}CCar* CMyEditorDoc::AddCar(CCar Car)
{
CCar* pCar =new CCar(Car);
m_oaCars.Add (pCar); SetModifiedFlag(); return pCar;
}
把m_car存在了m_oaCars中了,为什么我在veiw中用onpain就能显示了,如果释放了,那应该怎么改
还有谁能说一下opaint和ondraw有什么区别,怎么在ondraw就显示不了呢
黑 客 群:18605156
VC 群:18607590
ASP群:48490599
嵌 入 式 群:33956012加入请写名原因。
LINUX 群:18788803
经济、军事群:3685785
市场经济论坛(朋友的):48696408