基于MFC的ActiveX控件,主要功能是
Demo小样:
一、放大控件的设计过程
1.新建MFC ActiveX项目
2.添加对话框MyDlg类,对话框ID为IDD_MYDLG;
3.在控件类CActiveXDemoCtrl类中进行改写如下函数
- 在CActiveXDemoCtrl.h声明对话框类的变量
CMyDlg m_mydlg;
- 改写OnCreate方法
int CActiveXDemoCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (COleControl::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: 在此添加您专用的创建代码
m_mydlg.Create(IDD_MYDLG, this);
return 0;
}
- 重写OnSize方法
void CActiveXDemoCtrl::OnSize(UINT nType, int cx, int cy)
{
COleControl::OnSize(nType, cx, cy);
// TODO: 在此处添加消息处理程序代码
m_mydlg.MoveWindow(0,0,cx,cy);
}
- 改写OnDraw函数
void CActiveXDemoCtrl::OnDraw(
CDC* pdc, const CRect& rcBounds, const CRect& /* rcInvalid */)
{
if (!pdc)
return;
// TODO: 用您自己的绘图代码替换下面的代码。
}
4.为控件添加组件,设置好ID
- 添加Button按钮
- 添加2个Picture控件
- 添加Slider bar滑块
5.相应的组件的初始化
BOOL CMyDlg::OnInitDialog()
{
//TheImage Picture控件的初始化代码
CvSize ImgSize;
ImgSize.height = 127;
ImgSize.width = 127;
TheImage = cvCreateImage(ImgSize, IPL_DEPTH_8U, IMAGE_CHANNELS);
//TheBigImage Picture控件的初始化代码
CvSize ImgBigSize;
ImgBigSize.height = 160;
ImgBigSize.width = 480;
TheBigImage = cvCreateImage(ImgBigSize, IPL_DEPTH_8U, IMAGE_CHANNELS);
//滑动条代码
CSliderCtrl *pSlidCtrl = (CSliderCtrl*)GetDlgItem(IDC_SLIDER_NUM);
p