win32使用ATL显示C#COM窗体
来源:互联网 发布:淘宝账号注册首页登录 编辑:程序博客网 时间:2024/05/22 10:24
显示效果如图:
环境:win7 64、VS2013
代码如下:
#include <atlbase.h>#include <atlhost.h>// 导入#import "TestCtrl.tlb"// 定义全局对象HWND hMainWnd;CComModule _module; // COM服务器模块CAxWindow _ctrl; // ActiveX控件的容器int APIENTRY _tWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPTSTR lpCmdLine, _In_ int nCmdShow){UNREFERENCED_PARAMETER(hPrevInstance);UNREFERENCED_PARAMETER(lpCmdLine); // TODO: 在此放置代码。MSG msg;HACCEL hAccelTable;// 初始化全局字符串LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);LoadString(hInstance, IDC_WIN32USECSHAPEFORM, szWindowClass, MAX_LOADSTRING);MyRegisterClass(hInstance);// 执行应用程序初始化,并<span style="color:#ff0000;">设置hMainWnd窗口句柄</span>if (!InitInstance (hInstance, nCmdShow)){return FALSE;}// 初始化_module.Init(NULL, hInstance);// 创建ActiveXRECT rcClient;GetClientRect(hMainWnd, &rcClient);LPOLESTR lpwProgID = nullptr;IUnknown* unknown = nullptr;// Create函数的第三个参数一定要是nullptr或NULL,否则创建窗口不成功HWND hAtlWnd = _ctrl.Create(hMainWnd, rcClient, nullptr, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN);ProgIDFromCLSID(__uuidof(TestCtrl::TestCtrl), &lpwProgID);_ctrl.CreateControlEx(lpwProgID, NULL, NULL, &unknown);// 查询接口,然后调用接口函数TestCtrl::ITestCtrlPtr webCtrl;unknown->QueryInterface(__uuidof(TestCtrl::ITestCtrl), (LPVOID*)&webCtrl);if (webCtrl) {webCtrl->test();}hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_WIN32USECSHAPEFORM));// 主消息循环: while (GetMessage(&msg, NULL, 0, 0)){if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)){TranslateMessage(&msg);DispatchMessage(&msg);}}// 释放_module.Term();return (int) msg.wParam;}
0 0
- win32使用ATL显示C#COM窗体
- c++win32在窗体上动态显示时间
- C#:Win32 Hooks(一)让下一个弹出子窗体自动显示在父窗体中心
- vs2005使用ATL开发COM
- 使用ATL::CWindowImpl实现Win32窗口
- 使用ATL::CWindowImpl实现Win32窗口
- C#:Win32 Hooks(二)让MessageBox自动显示在父窗体中心
- 使用ATL创建COM程序实例
- 创建.dll(ATL COM)文件及其使用
- 使用ATL开发简单COM组件(1)
- 使用ATL进行com组件的开发
- Visual C++ COM/DCOM/COM+/ATL设计专辑
- 用ATL创建的com class怎样显示实例化?
- C#----关闭登录窗体,显示主窗体
- 使用SetParent劫持Win32 PopUp窗体
- win32 窗体
- ATL/CLR/MFC/Win32
- ATL中Win32平台(DOS)来调用COM类及UUID
- 2-9-1 复数类中的运算符重载(续)
- uva 10401 Injured Queen Problem(DP)
- ubuntu中apt-get dpkg应用出现的问题及解决方法
- AVL树C语言实现
- 二叉树的基本操作和遍历
- win32使用ATL显示C#COM窗体
- 【陈式兔子定理】本科生、硕士生、博士生、博士后之区别
- css中的:before 和 :after
- android摇一摇
- 【C++注意事项】2 变量声明和定义
- ACdream 1430 SETI 后缀自动机
- Oracle使用APEX与ADF快速开发漂亮的WEB应用
- Android UI 之一步步教你自定义控件(自定义属性、合理设计onMeasure、合理设计onDraw等)
- 【Java】Java集合框架源码和数据结构简要分析——List