mfc 多张图片分页显示

在VS2010中,ActiveX控件怎么实现多张图片的分页显示

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 看下这篇博客,也许你就懂了,链接:MFC_解决屏幕分辨率的问题
  • 除此之外, 这篇博客: 用VS2019开发一个简单的ActiveX(MFC)控件中的 二、添加界面显示 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
    1. 在 资源视图 中插入对话框
      在这里插入图片描述
    2. delete 掉 【确定】【取消】,然后修改對話框屬性:
      Border改為None,
      Control改為Ture,
      ID改為IDD_MAIN_DIALOG
      Style改為Child
      System改為False
      Visible改為True

    3. 拖拽一个 Edit Control 过来,调整好自己喜欢的大小
    4. 双击对话框:Dialog,为该对话框添加一个类
    5. 在testActiveXCtrl.h中添加:CMainDlg m_ctrldlg
    6. 修改 onDraw 如下图
    7. 类视图下面,点击类向导(Z)
    8. 在”消息“栏下选择 WM_CREATE,然后点击右边”添加处理程序“。注意图中的其它设置。
    9. vs2019自动添加的代码还需要手动添加一条:m_ctrldlg.Create(IDD_MAIN_DIALOG, this);
    10. 至此为止,基本框架改动处一共有:
      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控件已在本机中

    1. 最后,找到一个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>
    
    1. 然后用IE浏览器打开该htm文件,就可以看到ActiveX控件的提示了,如果成功了,将会是这样

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^