CChildView改变改变继承类解决方案
CChildView改变改变继承类
创建一个MFC应用程序,不勾选“文档/视图结构支持(V)”
其他全部默认,直到完成。
继续修改,算了直接贴所有文档
ChildView.h
ChildView.cpp
程序可以正常运行,但在退出时出现如下错误
求高手,大神解决。
------解决方案--------------------
既然"不勾选“文档/视图结构支持(V)”"
那来的 CChildView ?
------解决方案--------------------
这个由向导 产生的 CChildView , 改成 CListView 后, 必须 动态 Create 。 即:
CMainFrame 中 定义是:
CChildView m_wndView; 要改为:
CChildView *m_pwndView;
产生时先:
m_pwndView=new CChildView;
然后 原句 :
if(!m_pwndView->Create(.......
{
......
}
创建一个MFC应用程序,不勾选“文档/视图结构支持(V)”
其他全部默认,直到完成。
// 把原来 CWnd 改变为 CListView
// class CChildView : public CWnd
class CChildView : public CListView
继续修改,算了直接贴所有文档
ChildView.h
// ChildView.h : CChildView 类的接口
//
#pragma once
#include <afxcview.h>
// CChildView 窗口
// 把原来 CWnd 改变为 CListView
// class CChildView : public CWnd
class CChildView : public CListView
{
// 构造
public:
CChildView();
// 属性
public:
// 操作
public:
// 重写
protected:
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
// 实现
public:
virtual ~CChildView();
// 生成的消息映射函数
protected:
afx_msg void OnPaint();
DECLARE_MESSAGE_MAP()
};
ChildView.cpp
// ChildView.cpp : CChildView 类的实现
//
#include "stdafx.h"
#include "asdff.h"
#include "ChildView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// CChildView
CChildView::CChildView()
{
}
CChildView::~CChildView()
{
}
BEGIN_MESSAGE_MAP(CChildView, CListView)
ON_WM_PAINT()
END_MESSAGE_MAP()
// CChildView 消息处理程序
BOOL CChildView::PreCreateWindow(CREATESTRUCT& cs)
{
if (!CListView::PreCreateWindow(cs))
return FALSE;
//cs.dwExStyle |= WS_EX_CLIENTEDGE;
//cs.style &= ~WS_BORDER;
//cs.lpszClass = AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW|CS_DBLCLKS,
// ::LoadCursor(NULL, IDC_ARROW), reinterpret_cast<HBRUSH>(COLOR_WINDOW+1), NULL);
return TRUE;
}
void CChildView::OnPaint()
{
CPaintDC dc(this); // 用于绘制的设备上下文
// TODO: 在此处添加消息处理程序代码
// 不要为绘制消息而调用 CWnd::OnPaint()
}
程序可以正常运行,但在退出时出现如下错误
求高手,大神解决。
------解决方案--------------------
既然"不勾选“文档/视图结构支持(V)”"
那来的 CChildView ?
------解决方案--------------------
这个由向导 产生的 CChildView , 改成 CListView 后, 必须 动态 Create 。 即:
CMainFrame 中 定义是:
CChildView m_wndView; 要改为:
CChildView *m_pwndView;
产生时先:
m_pwndView=new CChildView;
然后 原句 :
if(!m_pwndView->Create(.......
{
......
}