123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201 |
- // StoneU_HC_OCXCtrl.cpp : CStoneU_HC_OCXCtrl ActiveX 控件类的实现。
- #include "stdafx.h"
- #include "StoneU_HC_OCX.h"
- #include "StoneU_HC_OCXCtrl.h"
- #include "StoneU_HC_OCXPropPage.h"
- #include "mdlProject.h"
- #include ".\stoneu_hc_ocxctrl.h"
- #ifdef _DEBUG
- #define new DEBUG_NEW
- #endif
- IMPLEMENT_DYNCREATE(CStoneU_HC_OCXCtrl, COleControl)
- // 消息映射
- BEGIN_MESSAGE_MAP(CStoneU_HC_OCXCtrl, COleControl)
- ON_OLEVERB(AFX_IDS_VERB_PROPERTIES, OnProperties)
- ON_WM_CREATE()
- ON_WM_DESTROY()
- END_MESSAGE_MAP()
- // 调度映射
- BEGIN_DISPATCH_MAP(CStoneU_HC_OCXCtrl, COleControl)
- DISP_FUNCTION_ID(CStoneU_HC_OCXCtrl, "AboutBox", DISPID_ABOUTBOX, AboutBox, VT_EMPTY, VTS_NONE)
- END_DISPATCH_MAP()
- // 事件映射
- BEGIN_EVENT_MAP(CStoneU_HC_OCXCtrl, COleControl)
- END_EVENT_MAP()
- // 属性页
- // TODO: 按需要添加更多属性页。请记住增加计数!
- BEGIN_PROPPAGEIDS(CStoneU_HC_OCXCtrl, 1)
- PROPPAGEID(CStoneU_HC_OCXPropPage::guid)
- END_PROPPAGEIDS(CStoneU_HC_OCXCtrl)
- // 初始化类工厂和 guid
- IMPLEMENT_OLECREATE_EX(CStoneU_HC_OCXCtrl, "STONEU_HC_OCX.StoneU_HC_OCXCtrl.1",
- 0x80043a10, 0xf014, 0x4817, 0x98, 0x32, 0x38, 0xa3, 0x82, 0x2, 0xe0, 0xb8)
- // 键入库 ID 和版本
- IMPLEMENT_OLETYPELIB(CStoneU_HC_OCXCtrl, _tlid, _wVerMajor, _wVerMinor)
- // 接口 ID
- const IID BASED_CODE IID_DStoneU_HC_OCX =
- { 0xF8B272B0, 0xB427, 0x44C5, { 0x94, 0xAF, 0x45, 0xF2, 0x57, 0xB3, 0x7A, 0xD5 } };
- const IID BASED_CODE IID_DStoneU_HC_OCXEvents =
- { 0x9132B4B8, 0x56EF, 0x4CF1, { 0x8F, 0x90, 0x3, 0xA4, 0x96, 0x3D, 0x3E, 0x37 } };
- // 控件类型信息
- static const DWORD BASED_CODE _dwStoneU_HC_OCXOleMisc =
- OLEMISC_ACTIVATEWHENVISIBLE |
- OLEMISC_SETCLIENTSITEFIRST |
- OLEMISC_INSIDEOUT |
- OLEMISC_CANTLINKINSIDE |
- OLEMISC_RECOMPOSEONRESIZE;
- IMPLEMENT_OLECTLTYPE(CStoneU_HC_OCXCtrl, IDS_STONEU_HC_OCX, _dwStoneU_HC_OCXOleMisc)
- // CStoneU_HC_OCXCtrl::CStoneU_HC_OCXCtrlFactory::UpdateRegistry -
- // 添加或移除 CStoneU_HC_OCXCtrl 的系统注册表项
- BOOL CStoneU_HC_OCXCtrl::CStoneU_HC_OCXCtrlFactory::UpdateRegistry(BOOL bRegister)
- {
- // TODO: 验证您的控件是否符合单元模型线程处理规则。
- // 有关更多信息,请参考 MFC 技术说明 64。
- // 如果您的控件不符合单元模型规则,则
- // 必须修改如下代码,将第六个参数从
- // afxRegApartmentThreading 改为 0。
- if (bRegister)
- return AfxOleRegisterControlClass(
- AfxGetInstanceHandle(),
- m_clsid,
- m_lpszProgID,
- IDS_STONEU_HC_OCX,
- IDB_STONEU_HC_OCX,
- afxRegApartmentThreading,
- _dwStoneU_HC_OCXOleMisc,
- _tlid,
- _wVerMajor,
- _wVerMinor);
- else
- return AfxOleUnregisterClass(m_clsid, m_lpszProgID);
- }
- // CStoneU_HC_OCXCtrl::CStoneU_HC_OCXCtrl - 构造函数
- CStoneU_HC_OCXCtrl::CStoneU_HC_OCXCtrl()
- {
- InitializeIIDs(&IID_DStoneU_HC_OCX, &IID_DStoneU_HC_OCXEvents);
- // TODO: 在此初始化控件的实例数据。
- }
- // CStoneU_HC_OCXCtrl::~CStoneU_HC_OCXCtrl - 析构函数
- CStoneU_HC_OCXCtrl::~CStoneU_HC_OCXCtrl()
- {
- // TODO: 在此清理控件的实例数据。
- }
- // CStoneU_HC_OCXCtrl::OnDraw - 绘图函数
- void CStoneU_HC_OCXCtrl::OnDraw(
- CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid)
- {
- #if 0
- if (!pdc)
- return;
- // TODO: 用您自己的绘图代码替换下面的代码。
- pdc->FillRect(rcBounds, CBrush::FromHandle((HBRUSH)GetStockObject(WHITE_BRUSH)));
- pdc->Ellipse(rcBounds);
- #endif
- }
- // CStoneU_HC_OCXCtrl::DoPropExchange - 持久性支持
- void CStoneU_HC_OCXCtrl::DoPropExchange(CPropExchange* pPX)
- {
- ExchangeVersion(pPX, MAKELONG(_wVerMinor, _wVerMajor));
- COleControl::DoPropExchange(pPX);
- // TODO: 为每个持久的自定义属性调用 PX_ 函数。
- }
- // CStoneU_HC_OCXCtrl::OnResetState - 将控件重置为默认状态
- void CStoneU_HC_OCXCtrl::OnResetState()
- {
- COleControl::OnResetState(); // 重置 DoPropExchange 中找到的默认值
- // TODO: 在此重置任意其他控件状态。
- }
- // CStoneU_HC_OCXCtrl::AboutBox - 向用户显示“关于”框
- void CStoneU_HC_OCXCtrl::AboutBox()
- {
- CDialog dlgAbout(IDD_ABOUTBOX_STONEU_HC_OCX);
- dlgAbout.DoModal();
- }
- // CStoneU_HC_OCXCtrl 消息处理程序
- int CStoneU_HC_OCXCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct)
- {
- if (COleControl::OnCreate(lpCreateStruct) == -1)
- return -1;
- // TODO: 在此添加您专用的创建代码
- g_pOCXCtrl = this;
- _CreateDialog(this);
- return 0;
- }
- void CStoneU_HC_OCXCtrl::OnDestroy()
- {
- COleControl::OnDestroy();
- // TODO: 在此处添加消息处理程序代码
- _DestoryDialog();
- }
|