• 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 > 怎么在非对话框环境下调用ocx控件

怎么在非对话框环境下调用ocx控件

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

佚名通过本文主要向大家介绍了ocx控件安装,ocx控件下载,ocx控件注册,ocx控件,如何注册ocx控件等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 怎么在非对话框环境下调用ocx控件
描述:

vc60环境下添加的ocx控件在对话框中是好用的,但我要在非对话框类中调用控件该怎么办?


解决方案1:

#include "stdafx.h"
#define MAX_LOADSTRING 100
#include <atlbase.h>
 CComModule _Module;
#include <atlcom.h>
#include <atlwin.h>
#pragma comment(lib,"atl")
#import "c:\winnt\system32\macromed\flash\swflash.ocx"
using namespace ShockwaveFlashObjects;
// Global Variables:
HINSTANCE hInst; // current instance
TCHAR szTitle[MAX_LOADSTRING]; // The title bar text
TCHAR szWindowClass[MAX_LOADSTRING]; // The title bar text
CAxWindow m_container;
// Foward declarations of functions included in this code module:
ATOM MyRegisterClass(HINSTANCE hInstance);
BOOL InitInstance(HINSTANCE, int);
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
MSG msg;
// Initialize global strings
wsprintf(szTitle,"use flash control in sdk exe");
wsprintf(szWindowClass,"flashinsdk");
MyRegisterClass(hInstance);
CoInitialize(NULL);
// Perform application initialization:
if (!InitInstance (hInstance, nCmdShow)) 
{
return FALSE;
}
// Main message loop:
while (GetMessage(&msg, NULL, 0, 0)) 
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
CoUninitialize();
return msg.wParam;
}
//
//  FUNCTION: MyRegisterClass()
//
//  PURPOSE: Registers the window class.
//
//  COMMENTS:
//
//    This function and its usage is only necessary if you want this code
//    to be compatible with Win32 systems prior to the 'RegisterClassEx'
//    function that was added to Windows 95. It is important to call this function
//    so that the application will get 'well formed' small icons associated
//    with it.
//
ATOM MyRegisterClass(HINSTANCE hInstance)
{
WNDCLASSEX wcex;
wcex.cbSize = sizeof(WNDCLASSEX); 
wcex.style = CS_HREDRAW | CS_VREDRAW;
wcex.lpfnWndProc = (WNDPROC)WndProc;
wcex.cbClsExtra = 0;
wcex.cbWndExtra = 0;
wcex.hInstance = hInstance;
wcex.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wcex.lpszMenuName = NULL;//(LPCSTR)IDC_FLSH;
wcex.lpszClassName = szWindowClass;
wcex.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
return RegisterClassEx(&wcex);
}
//
//   FUNCTION: InitInstance(HANDLE, int)
//
//   PURPOSE: Saves instance handle and creates main window
//
//   COMMENTS:
//
//        In this function, we save the instance handle in a global variable and
//        create and display the main program window.
//
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
   HWND hWnd;
   hInst = hInstance; // Store instance handle in our global variable
AtlAxWinInit();
   hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
      CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);
   if (!hWnd)
   {
      return FALSE;
   }
   ShowWindow(hWnd, nCmdShow);
   UpdateWindow(hWnd);
   return TRUE;
}
//
//  FUNCTION: WndProc(HWND, unsigned, WORD, LONG)
//
//  PURPOSE:  Processes messages for the main window.
//
//  WM_COMMAND - process the application menu
//  WM_PAINT - Paint the main window
//  WM_DESTROY - post a quit message and return
//
//
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
int wmId, wmEvent;
PAINTSTRUCT ps;
HDC hdc;
TCHAR szHello[MAX_LOADSTRING];
wsprintf(szHello,"use flash control in sdk");
IShockwaveFlash* shwaveflash;
HWND hbtnstart;
RECT rc;
switch (message) 
{
case WM_CREATE:
GetClientRect(hWnd, &rc );
rc.top = (rc.bottom+rc.top)/2;
m_container.Create( hWnd, rc, LPCTSTR("ShockwaveFlash.ShockwaveFlash.1"), WS_CHILD|WS_VISIBLE|WS_HSCROLL|WS_VSCROLL );//create a browser control
hbtnstart=CreateWindow("BUTTON","play",WS_CHILD|WS_VISIBLE,0,0,120,30,hWnd,(HMENU)0x100,hInst,0);
break;
case WM_SIZING:
GetClientRect(hWnd, &rc );
rc.top = (rc.bottom+rc.top)/2;
m_container.MoveWindow(&rc,true);
break;
case WM_COMMAND:
wmId    = LOWORD(wParam); 
wmEvent = HIWORD(wParam); 
// Parse the menu selections:
switch (wmId)
{
case 0x100:
m_container.QueryControl( __uuidof(IShockwaveFlash), reinterpret_cast<void**>(&shwaveflash) );
shwaveflash->put_Movie(_bstr_t("c:\\downloads\\radin\\flash\\2.1.swf")); // you have to change the path here
shwaveflash->Play();
break;
default:
   return DefWindowProc(hWnd, message, wParam, 

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

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

  • 如何让OCX控件包含另外一个控件
  • 非常奇怪的问题,ocx出古怪的错误,请大家帮我看看
  • 怎样为ocx控件添加属性,并在word中使用该控件的属性?
  • 请教ocx控件的制作
  • OCX控件在IE50中的显示问题~~~急!!!
  • 在OCX中的弹出菜单为什么会变灰??
  • 用MFC开发的ocx控件中的edit编辑框,不能响应左右方向键问题?
  • 怎样最快地把一个几十万行的mfcexe程序弄成ocx控件?
  • 自己写了一个ocx控件,出了点小问题,大家看看是为什么。谢谢
  • ie中使用ocx的问题?

相关文章

  • 2017-06-05 如何用VC的implib为我的DLL生成一个LIB,我在vc中查不到这个工具?
  • 2017-06-04 directshow编写的电视信号预览的问题
  • 2017-06-04 不知道filter的接口及其方法的资料,请问有什么办法在程序中指定它个属性吗?
  • 2017-06-04 vs2008开发activex的问题
  • 2017-06-05 求在vc平台上将xml文件导入Teechart的方法
  • 2017-06-05 建立一个ATL工程里封装一个对话框控件//怎么加上mfc拖拽控件资源里呢?
  • 2017-06-04 请教如何将doc/ppt的office文档按页码转化为jpg格式的图片文件
  • 2017-06-05 vs2010编译成功,运行报错:应用程序正常初始化(0xc0000000d)失败,请单击"确认",终止应用程序。
  • 2017-06-05 自制activex多实例全局变量冲突问题
  • 2017-06-05 发消息时显示内存不能read

文章分类

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

最近更新的内容

    • 我从网上下载了一个动态链接库,但调用链接库编译链接都可以通过,但每次调用当中的函数却总是失败,大家帮忙看看是怎么回事?
    • 截获程序调用API的真空地带
    • 帮帮忙,ATL的Active控件怎么写“初始化安全”和“脚本安全”的代码
    • Excel在vc中怎么操作
    • 很弱智的问题,我用VB写了一个ActiveXDll,怎么在HTML中调用呢?
    • 线程函数的参数问题
    • 涉及带有内部链接的对象的表达式不能用作非类型参数
    • VC调用Delphi做的Dll的问题
    • 用vc++net做的控件,在没有安装vc++net的机器上不能注册!
    • 在ATL里的接口函数的参数可以是int型的吗?

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

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