GandyDrawView.h
上传用户:do_tie
上传日期:2007-11-03
资源大小:1095k
文件大小:8k
源码类别:

GDI/图象编程

开发平台:

Visual C++

  1. // GandyDrawView.h : CGandyDrawView 类的接口
  2. //
  3. #pragma once
  4. #include "atltypes.h"
  5. #include "afxwin.h"
  6. class CGandyDrawView : public CView
  7. {
  8. protected: // 仅从序列化创建
  9. CGandyDrawView();
  10. DECLARE_DYNCREATE(CGandyDrawView)
  11. // 属性
  12. public:
  13. CGandyDrawDoc* GetDocument() const;
  14. // 操作
  15. public:
  16. // 重写
  17. public:
  18. virtual void OnDraw(CDC* pDC);  // 重写以绘制该视图
  19. virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
  20. protected:
  21. virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
  22. virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);
  23. virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);
  24. // 实现
  25. public:
  26. virtual ~CGandyDrawView();
  27. #ifdef _DEBUG
  28. virtual void AssertValid() const;
  29. virtual void Dump(CDumpContext& dc) const;
  30. #endif
  31. protected:
  32. // 生成的消息映射函数
  33. protected:
  34. DECLARE_MESSAGE_MAP()
  35. public:
  36. bool m_bTBar;
  37. public:
  38. afx_msg void OnViewDsTbar();
  39. public:
  40. afx_msg void OnUpdateViewDsTbar(CCmdUI *pCmdUI);
  41. public:
  42. // 标识当前鼠标是否在绘图过程中
  43. bool m_bDoing;
  44. public:
  45. // 画笔颜色PEN
  46. COLORREF m_PenColor;
  47. public:
  48. // 窗口横坐标最大值
  49. int m_iMaxX;
  50. public:
  51. // 窗口纵坐标最大值
  52. int m_iMaxY;
  53. public:
  54. // 当前画笔宽度
  55. int m_iWidth;
  56. public:
  57. // 位图GDI对象
  58. CBitmap *m_pBmp;
  59. public:
  60. // 存于内存中的设备环境变量
  61. CDC *m_pMDC;
  62. public:
  63. // 光标原位置
  64. CPoint m_PointOld;
  65. public:
  66. // 光标新位置
  67. CPoint m_PointNew;
  68. public:
  69. // 当前选择绘图类型 直线 折线 多边形等
  70. int m_DrawType;
  71. public:
  72. // 画笔风格  实线 虚线 点线等等
  73. int m_iPenStyle;
  74. public:
  75. // 刷子颜色
  76. COLORREF m_BrushColor;
  77. public:
  78. // 画刷的条纹风格  水平线 垂直线 之类
  79. int m_iHatchStyle;
  80. public:
  81. // 刷子的风格 空心 实心  条纹 图像 刷 ?
  82. int m_iBrushStyle;
  83. public:
  84. afx_msg void OnLine();
  85. public:
  86. afx_msg void OnPolyline();
  87. public:
  88. afx_msg void OnRect();
  89. public:
  90. afx_msg void OnEllirect();
  91. public:
  92. afx_msg void OnEllipse();
  93. public:
  94. afx_msg void OnPolygon();
  95. public:
  96. afx_msg void OnTextdraw();
  97. public:
  98. afx_msg void OnSolid();
  99. public:
  100. afx_msg void OnDash();
  101. public:
  102. afx_msg void OnDot();
  103. public:
  104. afx_msg void OnDashdot();
  105. public:
  106. afx_msg void OnDashdotdot();
  107. public:
  108. afx_msg void OnSetwidth1();
  109. public:
  110. afx_msg void OnSetwidth2();
  111. public:
  112. afx_msg void OnSetwidth3();
  113. public:
  114. afx_msg void OnSetwidth4();
  115. public:
  116. afx_msg void OnSetwidth8();
  117. public:
  118. afx_msg void OnSetwidth10();
  119. public:
  120. afx_msg void OnSetwidth20();
  121. public:
  122. afx_msg void OnSetwidth50();
  123. public:
  124. afx_msg void OnBruHollow();
  125. public:
  126. afx_msg void OnBruSolid();
  127. public:
  128. afx_msg void OnFillwithpicture();
  129. public:
  130. afx_msg void OnStrHor();
  131. public:
  132. afx_msg void OnStrVer();
  133. public:
  134. afx_msg void OnStrBia();
  135. public:
  136. afx_msg void OnStrBla();
  137. public:
  138. afx_msg void OnStrCro();
  139. public:
  140. afx_msg void OnStrCcro();
  141. public:
  142. afx_msg void OnPencolor();
  143. public:
  144. afx_msg void OnBruColor();
  145. public:
  146. afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
  147. public:
  148. afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
  149. public:
  150. afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
  151. public:
  152. afx_msg void OnMouseMove(UINT nFlags, CPoint point);
  153. public:
  154. afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
  155. public:
  156. CPoint arrayP[255];
  157. public:
  158. // //画折线与多边形时用来对顶点计数
  159. int m_iPCount;
  160. public:
  161. CPoint m_PointLast_PL;
  162. public:
  163. afx_msg void OnRButtonUp(UINT nFlags, CPoint point);
  164. public:
  165. // 用来记录多边形的第一个点,以最后连接时使用。。
  166. CPoint m_PointFirst_PL;
  167. public:
  168. // 折线时 确定是否已按下左键 以防止没按左键时按右键自动画图 
  169. bool m_bClick;
  170. public:
  171. // 保存位图。。
  172. CBitmap m_Bitmap;
  173. public:
  174. afx_msg void OnSetfont();
  175. public:
  176. afx_msg void OnTestrotation();
  177. public:
  178. afx_msg void OnSetfontcolor();
  179. public:
  180. // 逻辑字体结构
  181. LOGFONT logFont;
  182. public:
  183. // 文本前景色
  184. COLORREF textColor;
  185. public:
  186. // 文本背景颜色
  187. COLORREF textBkColor;
  188. public:
  189. // 字体名称
  190. CString fontName;
  191. public:
  192. // 字体大小
  193. int fontSize;
  194. public:
  195. BOOL italic;
  196. public:
  197. BOOL bold;
  198. public:
  199. // 下划线
  200. BOOL underline;
  201. public:
  202. BOOL strikeOut;
  203. public:
  204. // 将字体大小fontSize转换为中文字号sFontNum的自定义函数
  205. CString GetFontNumber(int size);
  206. public:
  207. CFont font;
  208. public:
  209. BOOL SetFont(CDC * pDC, LPCTSTR faceName, int size, COLORREF col, int angle, bool italic, bool bold, bool underline, bool strikeOut);
  210. public:
  211. afx_msg void OnClearall();
  212. public:
  213. // 用来计算状态栏的dx dy 的变量
  214. CPoint m_PointLast_StatusBar;
  215. public:
  216. afx_msg void OnInputstr();
  217. public:
  218. CString m_strText;
  219. public:
  220. afx_msg void OnOutputstr();
  221. public:
  222. afx_msg void OnSetfontbkcolor();
  223. public:
  224. afx_msg void OnOutputfontsize();
  225. public:
  226. afx_msg void OnDrawoembmp();
  227. public:
  228. afx_msg void OnOpenbmp();
  229. public:
  230. // (打开)位图文件变量
  231. CBitmap m_FileBitmap;
  232. public:
  233. bool m_bBitmapLoaded;
  234. public:
  235. // 位图显示 拉伸模式(缺省为BLACKONWHITE)
  236. int m_iStretchBltMode;
  237. public:
  238. afx_msg void OnBlackonwhite();
  239. public:
  240. afx_msg void OnWhiteonblack();
  241. public:
  242. afx_msg void OnColoroncolor();
  243. public:
  244. afx_msg void OnHalftone();
  245. public:
  246. afx_msg void OnDispstrbmp();
  247. public:
  248. bool m_bIsStretchBlt;
  249. public:
  250. BITMAP bs;
  251. public:
  252. CDC dc;
  253. public:
  254. afx_msg void OnDispvirbmp();
  255. public:
  256. afx_msg void OnStrfillclient();
  257. public:
  258. afx_msg void OnStrkeeprate();
  259. public:
  260. bool m_bIsKeepingRate;
  261. public:
  262. afx_msg void OnUpdateStrkeeprate(CCmdUI *pCmdUI);
  263. public:
  264. bool m_bIsOpeningBmp;
  265. public:
  266. afx_msg void OnUpdateDispvirbmp(CCmdUI *pCmdUI);
  267. public:
  268. afx_msg void OnUpdateDispstrbmp(CCmdUI *pCmdUI);
  269. public:
  270. afx_msg void OnUpdateStrfillclient(CCmdUI *pCmdUI);
  271. public:
  272. afx_msg void OnUpdateBlackonwhite(CCmdUI *pCmdUI);
  273. public:
  274. afx_msg void OnUpdateWhiteonblack(CCmdUI *pCmdUI);
  275. public:
  276. afx_msg void OnUpdateColoroncolor(CCmdUI *pCmdUI);
  277. public:
  278. afx_msg void OnUpdateHalftone(CCmdUI *pCmdUI);
  279. public:
  280. afx_msg void OnSetwidth();
  281. public:
  282. afx_msg void OnJavaduke();
  283. public:
  284. afx_msg void OnChangebmp();
  285. public:
  286. afx_msg void OnDrawset();
  287. public:
  288. CString m_BmpPathName;
  289. public:
  290. afx_msg void OnUpdateLine(CCmdUI *pCmdUI);
  291. public:
  292. afx_msg void OnUpdateEllipse(CCmdUI *pCmdUI);
  293. public:
  294. afx_msg void OnUpdateEllirect(CCmdUI *pCmdUI);
  295. public:
  296. afx_msg void OnUpdatePolygon(CCmdUI *pCmdUI);
  297. public:
  298. afx_msg void OnUpdateRect(CCmdUI *pCmdUI);
  299. public:
  300. afx_msg void OnUpdatePolyline(CCmdUI *pCmdUI);
  301. public:
  302. afx_msg void OnUpdateTextdraw(CCmdUI *pCmdUI);
  303. public:
  304. afx_msg void OnUpdateDash(CCmdUI *pCmdUI);
  305. public:
  306. afx_msg void OnUpdateDot(CCmdUI *pCmdUI);
  307. public:
  308. afx_msg void OnUpdateDashdot(CCmdUI *pCmdUI);
  309. public:
  310. afx_msg void OnUpdateDashdotdot(CCmdUI *pCmdUI);
  311. public:
  312. afx_msg void OnUpdateSolid(CCmdUI *pCmdUI);
  313. public:
  314. afx_msg void OnUpdateBruHollow(CCmdUI *pCmdUI);
  315. public:
  316. afx_msg void OnUpdateBruSolid(CCmdUI *pCmdUI);
  317. public:
  318. afx_msg void OnUpdateFillwithpicture(CCmdUI *pCmdUI);
  319. public:
  320. afx_msg void OnUpdateStrBia(CCmdUI *pCmdUI);
  321. public:
  322. afx_msg void OnUpdateStrBla(CCmdUI *pCmdUI);
  323. public:
  324. afx_msg void OnUpdateStrCcro(CCmdUI *pCmdUI);
  325. public:
  326. afx_msg void OnUpdateStrCro(CCmdUI *pCmdUI);
  327. public:
  328. afx_msg void OnUpdateStrHor(CCmdUI *pCmdUI);
  329. public:
  330. afx_msg void OnUpdateStrVer(CCmdUI *pCmdUI);
  331. public:
  332. afx_msg void OnUpdateSetwidth1(CCmdUI *pCmdUI);
  333. public:
  334. afx_msg void OnUpdateSetwidth10(CCmdUI *pCmdUI);
  335. public:
  336. afx_msg void OnUpdateSetwidth2(CCmdUI *pCmdUI);
  337. public:
  338. afx_msg void OnUpdateSetwidth20(CCmdUI *pCmdUI);
  339. public:
  340. afx_msg void OnUpdateSetwidth3(CCmdUI *pCmdUI);
  341. public:
  342. afx_msg void OnUpdateSetwidth4(CCmdUI *pCmdUI);
  343. public:
  344. afx_msg void OnUpdateSetwidth50(CCmdUI *pCmdUI);
  345. public:
  346. afx_msg void OnUpdateSetwidth8(CCmdUI *pCmdUI);
  347. };
  348. #ifndef _DEBUG  // GandyDrawView.cpp 中的调试版本
  349. inline CGandyDrawDoc* CGandyDrawView::GetDocument() const
  350.    { return reinterpret_cast<CGandyDrawDoc*>(m_pDocument); }
  351. #endif