如何做个贴图CDialog的基类
比如叫做picWnd类,里面写好了,贴图的OnPaint(),怎么用这个类创建新的CDialog窗体??class picWnd()
{
afx_msg void OnPaint();
}
这样创建的新窗口出错
class CMyWinDlg : public CDialog,picWnd
这样也不行
class CMyWinDlg : public picWnd怎么才行??
比如叫做picWnd类,里面写好了,贴图的OnPaint(),怎么用这个类创建新的CDialog窗体??class picWnd()
{
afx_msg void OnPaint();
}
这样创建的新窗口出错
class CMyWinDlg : public CDialog,picWnd
这样也不行
class CMyWinDlg : public picWnd怎么才行??
就可以了class CMyWinDlg : public CDialog
{
afx_msg void OnPaint();
}BEGIN_MESSAGE_MAP/END_MESSAGE_MAP 之间添加ON_WM_PAINT()
不需要去定义picWnd类。
按照我上面的说明做
BEGIN_MESSAGE_MAP(CMyWinDlg, CDialog)
ON_WM_PAINT()
END_MESSAGE_MAP()
{
void Paint();//不要使用OnPaint名字
} class CMyWinDlg : public CDialog,picWnd
在CMyWinDlg的OnPaint函数中调用Paint函数。BEGIN_MESSAGE_MAP/END_MESSAGE_MAP 之间添加ON_WM_PAINT()
class CDialogEx : public CDialog
{
// Construction
public: CDialogEx(UINT nID,CWnd* pParent = NULL); // standard constructor
virtual ~CDialogEx();// Dialog Data
//{{AFX_DATA(CDialogEx)
在里面处理OnPaint消息再用class CMyWinDlg : public CDialogEx
这样会有个link错误error LNK2005: "protected: virtual struct AFX_MSGMAP const * __thiscall picWnd ::GetMessageMap(void)const "
请问这个CMyWinDlg最初应该定义为什么基类,是空C++的还是MFC from CDialog,还是手动添加文件?
class CImageDlg : public CDialog
{
DECLARE_DYNAMIC(CImageDlg)public:
CImageDlg(UINT nIDTemplate,CWnd* pParent = NULL); // 标准构造函数
CImageDlg(LPCTSTR lpszTemplateName, CWnd* pParentWnd = NULL);
virtual ~CImageDlg(); void DrawPosImage(CBitmap *pBitmap, CDC *pDC, CPoint pt);
void DrawRangeImage(CBitmap *pBitmap, CDC *pDC, CRect rc);
void SetImage(CBitmap &bitmap, CString strName);
void SetImageSize(CBitmap *pBitmap, CSize &sz);protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持 CBitmap m_BitmapTopLeft;
CSize m_szBitmapTopLeft;
CBitmap m_BitmapTopMid;
CSize m_szBitmapTopMid;
CBitmap m_BitmapTopRight;
CSize m_szBitmapTopRight; CBitmap m_BitmapCenterLeft;
CSize m_szBitmapCenterLeft;
CBitmap m_BitmapCenterRight;
CSize m_szBitmapCenterRight; CBitmap m_BitmapBottomLeft;
CSize m_szBitmapBottomLeft;
CBitmap m_BitmapBottomMid;
CSize m_szBitmapBottomMid;
CBitmap m_BitmapBottomRight;
CSize m_szBitmapBottomRight;
DECLARE_MESSAGE_MAP()
public:
virtual BOOL OnInitDialog();
afx_msg void OnPaint();
afx_msg UINT OnNcHitTest(CPoint point);
};自己用的,使用时从这个CImageDlg继承即可
CPP文件有吗,另外调用的地方怎么写
在这里设置