zoukankan      html  css  js  c++  java
  • Dialog和FormView如何派生通用类

    派生通用类涉及到派生类的构造函数需要传递窗口ID和CWnd,所以要在派生类中事先定义好

    在Dialog中构造函数是这样定义的

    public:
        CDialogEx();
        CDialogEx(UINT nIDTemplate, CWnd *pParent = NULL);
        CDialogEx(LPCTSTR lpszTemplateName, CWnd *pParentWnd = NULL);

    所以在派生

    Dialog类时要这样构造
    class CThemeDialogForFixShootSearch : public CDialogEx
    {
        DECLARE_DYNAMIC(CThemeDialogForFixShootSearch)
    
    public:
        CThemeDialogForFixShootSearch(UINT nIDTemplate, CWnd* pParent = NULL);   // standard constructor
        virtual ~CThemeDialogForFixShootSearch();
    }
    #include "stdafx.h"
    #include "ThemeDialogForFixShootSearch.h"
    
    
    
    // CThemeDialogForFixShootSearch dialog
    
    IMPLEMENT_DYNAMIC(CThemeDialogForFixShootSearch, CDialogEx)
    
    CThemeDialogForFixShootSearch::CThemeDialogForFixShootSearch(UINT nIDTemplate, CWnd* pParent /*=NULL*/)
        : CDialogEx(nIDTemplate, pParent)
    {
       
    }
    
    CThemeDialogForFixShootSearch::~CThemeDialogForFixShootSearch()
    {
    }
    
    void CThemeDialogForFixShootSearch::DoDataExchange(CDataExchange* pDX)
    {
        CDialogEx::DoDataExchange(pDX);
    }
    
    
    BEGIN_MESSAGE_MAP(CThemeDialogForFixShootSearch, CDialogEx)
    END_MESSAGE_MAP()
    同样FormView的构造函数为
    protected:      // must derive your own class
        CFormView(LPCTSTR lpszTemplateName);
        CFormView(UINT nIDTemplate);

    因为FormView没有默认构造,所以必须带参数

    #pragma once
    #include "afxext.h"
    
    class CBackgroundColor :public CFormView
    {
        DECLARE_DYNAMIC(CBackgroundColor)
    public:
        CBackgroundColor(UINT nIDTemplate);
        virtual ~CBackgroundColor();
        DECLARE_MESSAGE_MAP()
        afx_msg void OnPaint();
    };
    #include "stdafx.h"
    #include "BackgroundColor.h"
    #include <afxtempl.h>
    IMPLEMENT_DYNAMIC(CBackgroundColor, CFormView)
    CBackgroundColor::CBackgroundColor (UINT nIDTemplate)
    : CFormView(nIDTemplate)
    {
    }
    
    
    CBackgroundColor::~CBackgroundColor()
    {
    }
    BEGIN_MESSAGE_MAP(CBackgroundColor, CFormView)
        ON_WM_PAINT()
    END_MESSAGE_MAP()
     
  • 相关阅读:
    Qt为啥从4.8直接就跳到5.3了呢?这不科学吧
    一段程序的人生 第10章: server
    项目记录23--unity-tolua框架MediatorManager
    Raft 为什么是更易理解的分布式一致性算法
    Caused by: java.lang.UnsatisfiedLinkError: Couldn&#39;t load BaiduMapVOS_v2_1_3: findLibrary returned nu
    Apache OFBIZ高速上手(二)--MVC框架
    Eclipse 导入逆向工程
    mysql 报错从 新安装
    maven项目创建4
    maven报错
  • 原文地址:https://www.cnblogs.com/ye-ming/p/8880089.html
Copyright © 2011-2022 走看看