// StoneU_HC_CARDOCXCtrl.cpp : CStoneU_HC_CARDOCXCtrl ActiveX 控件类的实现。 #include "stdafx.h" #include "StoneU_HC_CARDOCX.h" #include "StoneU_HC_CARDOCXCtrl.h" #include "StoneU_HC_CARDOCXPropPage.h" #include ".\stoneu_hc_cardocxctrl.h" #include "mdlProject.h" #ifdef _DEBUG #define new DEBUG_NEW #endif IMPLEMENT_DYNCREATE(CStoneU_HC_CARDOCXCtrl, COleControl) // 消息映射 BEGIN_MESSAGE_MAP(CStoneU_HC_CARDOCXCtrl, COleControl) ON_OLEVERB(AFX_IDS_VERB_PROPERTIES, OnProperties) ON_WM_CREATE() ON_WM_DESTROY() ON_WM_MOVE() END_MESSAGE_MAP() // 调度映射 BEGIN_DISPATCH_MAP(CStoneU_HC_CARDOCXCtrl, COleControl) DISP_FUNCTION_ID(CStoneU_HC_CARDOCXCtrl, "AboutBox", DISPID_ABOUTBOX, AboutBox, VT_EMPTY, VTS_NONE) END_DISPATCH_MAP() // 事件映射 BEGIN_EVENT_MAP(CStoneU_HC_CARDOCXCtrl, COleControl) END_EVENT_MAP() // 属性页 // TODO: 按需要添加更多属性页。请记住增加计数! BEGIN_PROPPAGEIDS(CStoneU_HC_CARDOCXCtrl, 1) PROPPAGEID(CStoneU_HC_CARDOCXPropPage::guid) END_PROPPAGEIDS(CStoneU_HC_CARDOCXCtrl) // 初始化类工厂和 guid IMPLEMENT_OLECREATE_EX(CStoneU_HC_CARDOCXCtrl, "STONEU_HC_CARDOC.StoneU_HC_CARDOCCtrl.1", 0x81119a3d, 0xffb8, 0x4ca8, 0x89, 0x43, 0xa1, 0x48, 0x79, 0x63, 0x5, 0x8b) // 键入库 ID 和版本 IMPLEMENT_OLETYPELIB(CStoneU_HC_CARDOCXCtrl, _tlid, _wVerMajor, _wVerMinor) // 接口 ID const IID BASED_CODE IID_DStoneU_HC_CARDOCX = { 0xB811D68C, 0x9B20, 0x4FDB, { 0x94, 0x21, 0xC1, 0xD2, 0xA7, 0x39, 0xE2, 0x2 } }; const IID BASED_CODE IID_DStoneU_HC_CARDOCXEvents = { 0x3FBB7BE5, 0xC04E, 0x4759, { 0x80, 0xDE, 0xB0, 0x7C, 0x79, 0x17, 0xF3, 0xAA } }; // 控件类型信息 static const DWORD BASED_CODE _dwStoneU_HC_CARDOCXOleMisc = OLEMISC_ACTIVATEWHENVISIBLE | OLEMISC_SETCLIENTSITEFIRST | OLEMISC_INSIDEOUT | OLEMISC_CANTLINKINSIDE | OLEMISC_RECOMPOSEONRESIZE; IMPLEMENT_OLECTLTYPE(CStoneU_HC_CARDOCXCtrl, IDS_STONEU_HC_CARDOCX, _dwStoneU_HC_CARDOCXOleMisc) // CStoneU_HC_CARDOCXCtrl::CStoneU_HC_CARDOCXCtrlFactory::UpdateRegistry - // 添加或移除 CStoneU_HC_CARDOCXCtrl 的系统注册表项 BOOL CStoneU_HC_CARDOCXCtrl::CStoneU_HC_CARDOCXCtrlFactory::UpdateRegistry(BOOL bRegister) { // TODO: 验证您的控件是否符合单元模型线程处理规则。 // 有关更多信息,请参考 MFC 技术说明 64。 // 如果您的控件不符合单元模型规则,则 // 必须修改如下代码,将第六个参数从 // afxRegApartmentThreading 改为 0。 if (bRegister) return AfxOleRegisterControlClass( AfxGetInstanceHandle(), m_clsid, m_lpszProgID, IDS_STONEU_HC_CARDOCX, IDB_STONEU_HC_CARDOCX, afxRegApartmentThreading, _dwStoneU_HC_CARDOCXOleMisc, _tlid, _wVerMajor, _wVerMinor); else return AfxOleUnregisterClass(m_clsid, m_lpszProgID); } // CStoneU_HC_CARDOCXCtrl::CStoneU_HC_CARDOCXCtrl - 构造函数 CStoneU_HC_CARDOCXCtrl::CStoneU_HC_CARDOCXCtrl() { InitializeIIDs(&IID_DStoneU_HC_CARDOCX, &IID_DStoneU_HC_CARDOCXEvents); // TODO: 在此初始化控件的实例数据。 } // CStoneU_HC_CARDOCXCtrl::~CStoneU_HC_CARDOCXCtrl - 析构函数 CStoneU_HC_CARDOCXCtrl::~CStoneU_HC_CARDOCXCtrl() { // TODO: 在此清理控件的实例数据。 } // CStoneU_HC_CARDOCXCtrl::OnDraw - 绘图函数 void CStoneU_HC_CARDOCXCtrl::OnDraw( CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid) { if (!pdc) return; // TODO: 用您自己的绘图代码替换下面的代码。 //pdc->FillRect(rcBounds, CBrush::FromHandle((HBRUSH)GetStockObject(WHITE_BRUSH))); //pdc->Ellipse(rcBounds); } // CStoneU_HC_CARDOCXCtrl::DoPropExchange - 持久性支持 void CStoneU_HC_CARDOCXCtrl::DoPropExchange(CPropExchange* pPX) { ExchangeVersion(pPX, MAKELONG(_wVerMinor, _wVerMajor)); COleControl::DoPropExchange(pPX); // TODO: 为每个持久的自定义属性调用 PX_ 函数。 } // CStoneU_HC_CARDOCXCtrl::OnResetState - 将控件重置为默认状态 void CStoneU_HC_CARDOCXCtrl::OnResetState() { COleControl::OnResetState(); // 重置 DoPropExchange 中找到的默认值 // TODO: 在此重置任意其他控件状态。 } // CStoneU_HC_CARDOCXCtrl::AboutBox - 向用户显示“关于”框 void CStoneU_HC_CARDOCXCtrl::AboutBox() { CDialog dlgAbout(IDD_ABOUTBOX_STONEU_HC_CARDOCX); dlgAbout.DoModal(); } // CStoneU_HC_CARDOCXCtrl 消息处理程序 int CStoneU_HC_CARDOCXCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (COleControl::OnCreate(lpCreateStruct) == -1) return -1; // TODO: 在此添加您专用的创建代码 g_pOCXCtrl = this; _CreateDialog(this); return 0; } void CStoneU_HC_CARDOCXCtrl::OnDestroy() { COleControl::OnDestroy(); // TODO: 在此处添加消息处理程序代码 _DestoryDialog(); } void CStoneU_HC_CARDOCXCtrl::OnMove(int x, int y) { COleControl::OnMove(x, y); // TODO: 在此处添加消息处理程序代码 }