WEB开发网
开发学院软件开发VC 类似画笔的绘图控件 阅读

类似画笔的绘图控件

 2008-02-26 20:26:53 来源:WEB开发网   
核心提示:四、 打开和保存有了前面的基础,着部分比较容易实现,类似画笔的绘图控件(2),打开文件的主要函数是:HBITMAPhbmp = (HBITMAP)LoadImage(NULL, _T(path), IMAGE_BITMAP,0, 0, LR_CREATEDIBSECTION | LR_DEFAULTSIZE | LR_

四、 打开和保存

有了前面的基础,着部分比较容易实现。

打开文件的主要函数是:

HBITMAP hbmp = (HBITMAP)LoadImage(NULL, _T(path), IMAGE_BITMAP,
  0, 0, LR_CREATEDIBSECTION | LR_DEFAULTSIZE | LR_LOADFROMFILE);
pDC->BitBlt(0, 0, bm.bmWidth, bm.bmHeight, &dc, 0, 0, SRCCOPY);

具体实现过程请参考源代码。

以上是MFC程序的实现过程,接下来我们把它转化成控件。

五、转化成控件

1、新建控件

启动Microsoft Visual C++ 6.0,单击File下拉菜单下的New命令,在Profects标签下选择MFC ActiveX ControlWizard。输入工程名WinPainter;

2、引入ActivDoc.h和ActivDoc.cpp文件;

3、在CwinPainterCtrl类的构造函数中添加

AddDocTemplate(new CActiveXDocTemplate(
   RUNTIME_CLASS(CDemo1Doc),
   RUNTIME_CLASS(CMainFrame),
   RUNTIME_CLASS(CDemo1View)));

4、 将刚才开发的MFC工程中的视类、文档类、框架类的头文件、实现文件,还有图元类以及Stack类的文件统统包含进来,这时各类的消息函数可以正常响应,但菜单、工具栏等资源需要重新定义;

5、 在CWinPainterCtrl类中调用视类的函数,举例:

CDemo1View* m_pView;
m_pView = (CDemo1View *)(GetFrameWnd()->GetActiveView());
ASSERT(m_pView);
m_pView->OnEditCopy();

调用MFC中其它类的函数与此类似。

6、 增加控件的属性和方法。

至此,控件开发完毕。

控件运行测试效果图如下:

参考文献: 王宏 李玉东 李罡 《Visual C++ 实战演练》 人民邮电出版社

上一页  1 2 

Tags:类似 画笔 绘图

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接