• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >vc/mfc > 超难的问题呢!!在网页中加入VC做的activex,显示图片,并且可以操作,怎么都是基于视图不是对话框呢?帮帮我吧,

超难的问题呢!!在网页中加入VC做的activex,显示图片,并且可以操作,怎么都是基于视图不是对话框呢?帮帮我吧,

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-04

佚名通过本文主要向大家介绍了超难的问题呢!!在网页中加入VC做的activex,显示图片,并且可以操作,怎么都是基于视图不是对话框呢?帮帮我吧,等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 超难的问题呢!!在网页中加入VC做的activex,显示图片,并且可以操作,怎么都是基于视图不是对话框呢? 帮帮我吧,
描述:

我要在网页中加入用vc做的一个ACTIVEX,这个activex要处理图片,动态加载图片或者图片处理等等,是bmp格式或者其他dicom格式.可是一般的图片处理都是用vc建的基于视图而不是对话框的,可是呢,activex就是一个基于对话框的,要显示图片,就要用picture控件.
但现在情况是,我有一个已经写好的用vc基于视图的一个图象处理程序,我想把它加入到网页中去,可是视图到对话框的转变又不会,或者很麻烦,那现在我在怎么办呢????


解决方案1:

做好了吗?你给我发过短信吧
具体就是直接使用pDC啦
OnDraw(CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid)
跟在D/V里一样的吧,我是猜测的,你试试

解决方案2:

直接通过Object标签嵌入到HTML里边啊,通过JavaScript调用传递参数给ActiveX空间

解决方案3:

应该在空间的OnDraw()里实现你的现实就可以,应该不难
直接使用使用里面的pDC就可以

解决方案4:

在ActiveX控件中引入窗体技术  
   
 一、引入Dialog技术 
---- 下面介绍在制作ActiveX控件时引入有模式对话框技术,制作步骤如下: 
创建一新的MFC ActiveX ControlWizard项目,取名为Hello,其他用缺省选项;
在ResourceView页中新增一对话框资源,命名为IDD_HELLODIALOG,可以在对话框上放自己的控件;
为对话框资源IDD_HELLODIALOG创建新类CHelloDialog,从CDialog继承;
确认在HelloCtrl.h中已加入语句#include "HelloDialog.h",为CHelloCtrl类添加成员变量CHelloDialog m_helloDialog;
用ClassWizard在Automation页中为CHelloCtrl添加一方法void DoHello(),外部名亦为DoHello; 
void CHelloCtrl::DoHello() 
{
// 显示对话框
m_helloDialog.DoModal();
}
---- 可以用ActiveX Control Test Container测试Hello Control的DoHello方法。 
---- 下面介绍在制作ActiveX控件时引入无模式对话框技术,制作步骤如下: 
在上面工作的基础上,用ClassWizard为CHelloCtrl添加WM_CREATE的处理函数OnCreate,在此创建无模式对话框;
修改DoHello代码,在此显示对话框; 
int CHelloCtrl::OnCreate
(LPCREATESTRUCT lpCreateStruct) 
{
if (COleControl::OnCreate(lpCreateStruct) == -1)
return -1;
// 创建对话框
m_helloDialog.Create(IDD_HELLODIALOG);
return 0;
}
void CHelloCtrl::DoHello() 
{
// 显示对话框
m_helloDialog.ShowWindow(SW_SHOW);
}
---- 下面介绍制作以对话框作为界面的ActiveX控件技术,制作步骤如下: 
在上面工作的基础上,设置对话框资源IDD_HELLODIALOG属性的Style页为Style:Child、Border:Dialog Frame、Title Bar:unchecked;设置More Style页为Visible:checked;Control:checked;设置Extended Styles页为Static Edge:checked;
在CHelloCtrl::OnCreate中写入m_helloDialog.Create(IDD_HELLODIALOG,this)语句;
在CHelloCtrl::OnDraw中写入m_helloDialog.MoveWindow(rcBounds,TRUE); 
int CHelloCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
if (COleControl::OnCreate(lpCreateStruct) == -1)
return -1;
// 创建对话框
m_helloDialog.Create(IDD_HELLODIALOG,this);
return 0;
}
void CHelloCtrl::OnDraw(CDC* pdc, const
 CRect& rcBounds, const CRect& rcInvalid)
{
// 定位Hello对话框
m_helloDialog.MoveWindow(rcBounds,TRUE);
}
---- 二、引入FormView技术 
---- 下面介绍在制作ActiveX控件时引入FormView技术,制作步骤如下: 
在上面工作的基础上,在ResourceView页中新增一对话框资源,命名为IDD_HELLOFORMVIEW,可以在对话框上放自己的控件;
设置对话框资源IDD_HELLODIALOG属性的Style页为Style:Child、Border:Dialog Frame、Title Bar:unchecked;设置More Style页为Visible:checked;Control:checked;设置Extended Styles页为Static Edge:checked;
为对话框资源IDD_HELLOFORMVIEW创建新类CHelloFormView,从CFormView继承;
在HelloFormView.h中将CHelloFormView的构造函数CHelloFormView()和析构函数virtual ~CHelloFormView()从protected改为public;
在HelloFormView.h中对CHelloFormView类加入public friend class CHelloCtrl;
确认在HelloCtrl.h中已加入语句#include "HelloFormView.h",为CHelloCtrl类添加成员变量CHelloFormView m_helloFormView;
修改CHelloCtrl::OnCreate函数,在此创建m_helloFormView;
修改DoHello代码,在此显示FormView; 
int CHelloCtrl::OnCreate
(LPCREATESTRUCT lpCreateStruct) 
{
if (COleControl::OnCreate(lpCreateStruct) == -1)
return -1;
// 创建FormView
m_helloFormView.Create(NULL,NULL,AFX_WS_DEFAULT_VIEW,
CRect(0, 0, 0, 0), this, AFX_IDW_PANE_FIRST, NULL);
return 0;
}
void CHelloCtrl::OnDraw(CDC* pdc, const
 CRect& rcBounds, const CRect& rcInvalid)
{
// 定位Hello对话框
m_helloFormView.MoveWindow(rcBounds,TRUE);
}
---- 三、引入Document/View结构技术 
---- 下面介绍在制作ActiveX控件时引入Document/View技术,制作步骤如下: 
在上面工作的基础上,在Hello工程中用ClassWizard添加一新类CPrintFrame,取其父类为CFrameWnd;
在PrintFrame.h中将CPrintFrame的构造函数CPrintFrame()和析构函数virtual ~CPrintFrame()从protected改为public;
在Hello工程中用ClassWizard添加一新类CPrintView,取其父类为CView;
在PrintView.h中将CPrintView的构造函数CPrintView()和析构函数virtual ~CPrintView()从protected改为public;
在Hello工程中用ClassWizard添加一新类CPrintDoc,取其父类为CDocument;
在PrintDoc.h中将CPrintDoc的构造函数CPrintDoc()和析构函数virtual ~CPrintDoc()从protected改为public;
在Hello工程中用ClassWizard添加一新类CPrintThread,取其父类为CWinThread;
在HelloCtrl.h文件中为CHelloCtrl类添加成员变量CPrintThread* m_pPrintThread,确认在HelloCtrl.h中已加入语句#include "PrintThread.h"; 
void CHelloCtrl::DoHello() 
{
// 创建打印线程
m_pPrintThread = (CPrintThread*)
AfxBeginThread(RUNTIME_CLASS(CPrintThread),
THREAD_PRIORITY_NORMAL, CREATE_SUSPENDED, NULL);
m_pPrintThread- >ResumeThread();
}
在PrintThread.h中添加新成员变量 
CPrintDoc* m_pPrintDoc和CPrintFrame* m_pPrintFrame,
并在构造函数和析构函数中完成对它们的初始设置和清除,
确认在PrintThread.h中已加入语句#include 
"PrintDoc.h"和#include "PrintFrame.h";
CPrintThread::CPrintThread()
{
m_pPrintDoc=NULL;
m_pPrintFrame=NULL;
}
CPrintThread::~CPrintThread()
{
if (m_pPrintDoc!=NULL)
delete m_pPrintFrame;
if (m_pPrintFrame!=NULL)
delete m_pPrintDoc;
}
在PrintThread.cpp的CPrintThread::InitInstance中,进行创建窗体CPrintFrame,确认在PrintThread.cpp中已加入语句#include "PrintFrame.h"; 
BOOL CPrintThread::InitInstance()
{
// 创建文档/视图框架
CPrintFrame* pFrame = new CPrintFrame;
m_pMainWnd = pFrame;
m_pPrintFrame=pFrame;
m_pPrintDoc=new CPrintDoc;
CCreateContext context;
context.m_pCurrentDoc = m_pPrintDoc;
context.m_pNewViewClass = RUNTIME_CLASS(CPrintView);
pFrame- >Create(NULL,"打印主窗体",
WS_OVERLAPPEDWINDOW,CRect(0,0,100,100),
NULL,NULL,0,&context);
pFrame-  >InitialUpdateFrame(m_pPrintDoc, TRUE);
return TR

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 超难的问题呢!!在网页中加入VC做的activex,显示图片,并且可以操作,怎么都是基于视图不是对话框呢?帮帮我吧,

相关文章

  • 2017-06-05 VC生成的DLL,VB调用时,老是找不到DLL,如何解决?
  • 2017-06-04 编译时提示:请确保您有修改注册表的相应权限。
  • 2017-06-04 一个常量值20分,进来拿吧!
  • 2017-06-05 新人求解VS2008如何调用控件的方法。
  • 2017-06-04 ActiveX控件:怎样读取<object>里面的属性??
  • 2017-06-04 关于ole容器的问题
  • 2017-06-04 VB中能否使用COM接口传出的结构类型的数据?
  • 2017-06-04 开发MFCActiveX控件时,设置成Invisibleatruntime时,控件就不能处理消息了吗?
  • 2017-06-05 我是要写一个COM组件,组件调用我以前写好的DLL
  • 2017-06-05 线程同步时的进入是否是先进先出的?

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • ATL开发COM组件时能用unsignedchar类型参数吗
    • 可不可以在线程中运行本机上的其他可执行文件?
    • 用atl写的activex当用delphi/c++build调用时本来要返回HRESULT的函数却变成VOID
    • ADO对象怎么封装到DLL中?
    • 求助:我的BHO问题在哪里?
    • 如何把VOID类型转换为COM中的类型
    • 小弟初学,请问各位dll和com有什么区别,好像都是有dll,lib,h文件
    • 为什么不能创建excel服务
    • 同一个问题,好久好久都没有人回答???(痛并期待着)
    • 定义Com接口的参数类型//下面???都属于什么类型?

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有