在VS2010中,ActiveX控件怎么实现多张图片的分页显示
1条回答 默认 最新
关注 不知道你这个问题是否已经解决, 如果还没有解决的话:- 看下这篇博客,也许你就懂了,链接:MFC_解决屏幕分辨率的问题
- 除此之外, 这篇博客: 用VS2019开发一个简单的ActiveX(MFC)控件中的 二、添加界面显示 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
- 在 资源视图 中插入对话框
- delete 掉 【确定】【取消】,然后修改對話框屬性:
Border改為None,
Control改為Ture,
ID改為IDD_MAIN_DIALOG
Style改為Child
System改為False
Visible改為True
- 拖拽一个 Edit Control 过来,调整好自己喜欢的大小
- 双击对话框:Dialog,为该对话框添加一个类
- 在testActiveXCtrl.h中添加:CMainDlg m_ctrldlg
- 修改 onDraw 如下图
- 类视图下面,点击类向导(Z)
- 在”消息“栏下选择 WM_CREATE,然后点击右边”添加处理程序“。注意图中的其它设置。
- vs2019自动添加的代码还需要手动添加一条:m_ctrldlg.Create(IDD_MAIN_DIALOG, this);
- 至此为止,基本框架改动处一共有:
testActiveX.h 一处 #include “resource.h”
testActiveXCtrl.h 三处
①#include “CMainDlg.h”
②CMainDlg m_ctrldlg;
③afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
testActiveXCtrl.cpp 三处
①ON_WM_CREATE()
②// TODO: 用您自己的绘图代码替换下面的代码。
//pdc->FillRect(rcBounds, CBrush::FromHandle((HBRUSH)GetStockObject(WHITE_BRUSH)));
//pdc->Ellipse(rcBounds);
m_ctrldlg.MoveWindow(rcBounds, TRUE);
③m_ctrldlg.Create(IDD_MAIN_DIALOG, this);
可以点击重新生成解决方案了,如果未报错,说明ActiveX控件已在本机中
- 最后,找到一个ID,在testActiveX.idl文件的最后面,uuid()
将该ID,替换下面htm文件中的classid
<HEAD> <TITLE>Test ActiveX</TITLE> </HEAD> <OBJECT ID="testActiveXCtrl" WIDTH=528 HEIGHT=77 classid="CLSID:f3a0202e-17ce-4558-9b06-3144d9021849"> <PARAM NAME="_Version" VALUE="65536"> <PARAM NAME="_ExtentX" VALUE="12806"> <PARAM NAME="_ExtentY" VALUE="1747"> <PARAM NAME="_StockProps" VALUE="0"> </OBJECT> </HTML>
- 然后用IE浏览器打开该htm文件,就可以看到ActiveX控件的提示了,如果成功了,将会是这样
- 在 资源视图 中插入对话框
如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^解决 无用评论 打赏 举报
悬赏问题
- ¥15 使用C#,asp.net读取Excel文件并保存到Oracle数据库
- ¥15 C# datagridview 单元格显示进度及值
- ¥15 thinkphp6配合social login单点登录问题
- ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
- ¥15 如何在scanpy上做差异基因和通路富集?
- ¥20 关于#硬件工程#的问题,请各位专家解答!
- ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
- ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
- ¥30 截图中的mathematics程序转换成matlab
- ¥15 动力学代码报错,维度不匹配