不用那个扭曲的多添加一个对话然后修改名称的方法,我的做法如下
例子:让点击CButton 以后弹出一个对话框
1、在VIEW视类添加一个CButton类型的成员变量m_btn
2、添加视类的ON_CREATE消息
里面添加
m_btn.Create("Click Me!!",WS_CHILD|WS_VISIBLE,CRect(0,0,100,100),this,ID_CMD1);
ID_CMD1是我在资源列表预定的ID,以后统一使用这个ID
3、在视类的.h文件中添加消息映射,找到如下
// Generated message map functions
protected:
//{{AFX_MSG(CWinformView)
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
afx_msg void OnCMD1();
afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
private:
CPoint m_pt_o;
CButton m_btn;
有颜色的一行是自己添加的,这里是影射一个函数
4、然后进入视类的.CPP文件
添加
BEGIN_MESSAGE_MAP(CWinformView, CView)
//{{AFX_MSG_MAP(CWinformView)
ON_WM_CREATE()
ON_WM_LBUTTONDOWN()
ON_COMMAND(ID_CMD1, OnCMD1)
ON_WM_LBUTTONUP()
//}}AFX_MSG_MAP
// Standard printing commands
ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
END_MESSAGE_MAP()
兰色一行为添加的!
5、在视类的.CPP的尾部写函数描述
void CWinformView::OnLButtonUp(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CBitmap bitmap;
bitmap.LoadBitmap(IDB_BITMAP1);
CClientDC dc(this);
dc.FillRect(CRect(m_pt_o,point),&CBrush(&bitmap));
CView::OnLButtonUp(nFlags, point);
}
CWinformView为我的视类名称
好了,可以运行,点击看下!