秀山网站建设端午节手抄报获奖,建设科技期刊官网,模板公司,网络营销推广方式包括文章目录 1、简介1.1 MFC1.2 ActiveX 2、VS2017添加ActiveX控件结语 1、简介
1.1 MFC
Microsoft 基础类 (MFC) 库针对大部分 Win32 和 COM API 提供面向对象的包装器。 虽然此包装器可用于创建极为简单的桌面应用程序#xff0c;但当你需要开发具有多个控件的更复杂的用户界… 文章目录 1、简介1.1 MFC1.2 ActiveX 2、VS2017添加ActiveX控件结语 1、简介
1.1 MFC
Microsoft 基础类 (MFC) 库针对大部分 Win32 和 COM API 提供面向对象的包装器。 虽然此包装器可用于创建极为简单的桌面应用程序但当你需要开发具有多个控件的更复杂的用户界面时此包装器将最为有用。 可以使用 MFC 创建带有 Office 样式用户界面的应用程序。
https://learn.microsoft.com/zh-cn/cpp/mfc/mfc-desktop-applications?viewmsvc-170 用于多字节字符编码 (MBCS) 的 MFC 库 (DLL) 不再包含于 Visual Studio 中但可用作 Visual Studio 加载项。 下图表示派生自 CObject 的 MFC 类 下图表示派生自 CWnd 和 CCmdTarget 的 MFC 类 下图表示不是从 CObject 派生的 MFC 类
1.2 ActiveX
ActiveX 控件是一种特定的自动化服务器类型它是可重用组件。 托管 ActiveX 控件的应用程序是该控件的自动化客户端。在 Visual C 中您可以使用 MFC 或 ATL 创建 ActiveX 控件。 ActiveX 控件容器与有窗口的 ActiveX 控件之间的交互 ActiveX 控件容器与 ActiveX 控件之间的通信 有窗口的 ActiveX 控件中的 Windows 消息处理活动时 ActiveX 是旧技术不应用于新开发。 可以使用 HTML5 和 JavaScript、新式浏览器扩展或 WebAssembly 模块等现代技术以更简单、更安全的方式执行 ActiveX 控件的许多功能。有关详细信息请参阅告别过去第 2 部分告别 ActiveX、VBScript、attachEvent 和本机消息以及 Microsoft Edge 扩展和 WebAssembly。 https://blogs.windows.com/msedgedev/2015/05/06/a-break-from-the-past-part-2-saying-goodbye-to-activex-vbscript-attachevent/
2、VS2017添加ActiveX控件
QA: MFC dialog web browser activeX Control will not generate class correctly. https://developercommunity.visualstudio.com/t/mfc-dialog-web-browser-activex-control-will-not-ge/499195
为解决32位IDE中无法找到x64 ActiveX控件的问题仍采用事先创建并注册好的FxActiveX_MfcListCtrlActiveX控件做测试不同的是其配置为x64。 Regsvr32命令用于注册COM组件是Windows系统提供的用来向系统注册控件或者卸载控件的命令以命令行方式运行。 regsvr32 [/u] [/s] [/n] [/i[:cmdline]] dllname 其中dllname为activex控件文件名建议在安装前拷贝到system文件夹下。 Regsvr32 [/u] [/n] [/i[:cmdline]] dllname
%systemroot%\SysWoW64\regsvr32 full path of the DLL参数解释如下
/u #反注册控件取消注册服务器
/s #指定 regsvr32 安静运行在成功注册/反注册DLL文件的前提下不显示结果提示框。
/n #不调用 DllRegisterServer此选项必须与 /i 一起使用
/i:cmdline #调用 DllInstall为其传递一个可选 [cmdline]当与 /u 一起使用时可调用 dll uninstall
dllname #指定要注册的 dll 文件名。添加方法与32位控件不同当然也可以先注册对应的32位控件添加控件代码之后再注册64位控件再编译代码工程这里采用动态创建控件的方式成功解决无法添加的问题。
1新建基于对话框的工程。 2鼠标右键弹出菜单“类向导” 3在窗口“类向导”点击下拉框“添加类”选择菜单“ActiveX控件中的MFC类”。 4在可用的ActiveX控件里没有找到相关控件FxActiveX_MfcListCtrlActiveX控件的信息。 如果是32位控件注册的话是可以看见的。 5选择从文件直接加载。 6导出文件里的控件类。 7自动生成对应的控件类代码文件。 8添加控件对象定义代码。
#include CDXlist0.hCDXlist0 m_ctl;9添加控件对象实现代码。
#define IDC_OCX_CTL 1000CRect rect;GetClientRect(rect);m_ctl.Create(NULL, WS_CHILD | WS_VISIBLE, rect, this, IDC_OCX_CTL);m_ctl.ShowWindow(SW_SHOW);for (int i 0; i 100; i) {CString strText;strText.Format(Lhello: %d, i);m_ctl.AddTextItem(0, strText);}10编译和运行工程。 成功加载ActiveX控件
结语
如果您觉得该方法或代码有一点点用处可以给作者点个赞或打赏杯咖啡╮(▽)╭ 如果您感觉方法或代码不咋地//(ㄒoㄒ)//就在评论处留言作者继续改进o_O??? 如果您需要相关功能的代码定制化开发可以留言私信作者(✿◡‿◡) 感谢各位大佬童鞋们的支持( ´ ▽´ ) ( ´ ▽´)っ