分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow
也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!
作者:朱金灿
来源:http://blog.csdn.net/clever101/
基于文档视图结构程序的双缓冲绘图框架比较多,那么如何在对话框上绘图呢?以前通常的做法是拖一个静态文本控件或其它控件当作绘图区域或者在这个区域上创建一个视图出来。看了微软的一个示例程序DrawCli(一个绘图的单文档程序),产生了一些灵感,决心把它移植到对话框绘图上,摸索了一下,搞了一个基于对话框的简单双缓冲绘图框架。
具体代码如下,对话框头文件代码:
- #include <vector>
- //@brief 直线结构体
- struct stLine
- {
- stLine(CPoint &Begin,CPoint &End)
- {
- m_Begin = Begin;
- m_End = End;
- }
- //@brief 起点
- CPoint m_Begin;
- //@brief 终点
- CPoint m_End;
- };
- class CDoubleBufDrawDlg : public CDialog
- {
- DECLARE_DYNAMIC(CDoubleBufDrawDlg)
- public:
- CDoubleBufDrawDlg(CWnd* pParent = NULL); // 标准构造函数
- virtual ~CDoubleBufDrawDlg();
- // 对话框数据
- enum { IDD = IDD_DIALOG_GDIPLUS };
- protected:
- virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
- DECLARE_MESSAGE_MAP()
- public:
- virtual BOOL OnInitDialog();
- afx_msg void OnBnClickedDrawPoint();
- afx_msg void OnBnClickedDrawLine();
- afx_msg void OnSize(UINT nType, int cx, int cy);
- void AdjustControls();
- afx_msg void OnPaint();
- protected:
- //
- void InitDrawPara();
- protected:
- //@brief 上一个点
- CPoint m_PrePt;
- //