2024年4月2日发(作者:)

OCX控件

新建->项目->MFCActiveX

完成后编译器自动添加四个类。

型如:

一.事件的添加方法:

1.常用事件

右键Ctrl类->添加->添加事件->常用事件(Click事件为例)

在其他程序调用控件时在控件事件中就可以添加Click事件。在点击新建的对话框中的控

件时就会执行Click事件函数。

如下图

2.自定义方法

右键.lib类的第一个节点->添加方法

添加后在其他程序调用控件时就可以给控件添加变量并调用方法。

二.添加属性

以背景色为例,右键Lib类的第一个节点,添加属性,选择常用属性中的BackColor属

性(当然也可以自定义属性):

在Listcpp中手动添加属性页代码:

在OnDraw手动添加:

其中上图圈出部分为手动添加的代码,用于当控件被调用时打开改控件的颜色属性面板改变

控件的颜色。而COLORREFcol=TranslateColor(GetBackColor);这行代码实现了获取下图颜

色面板的颜色并返回给col;

如何在新程序中添加控件并实时改变控件的GDI?

方法:右键xxxlib文件的第一节点添加方法;

完成后在文件会添加该函数,例如:

voidCocx004Ctrl::myfun1(DOUBLEparag)

{

AFX_MANAGE_STATE(AfxGetStaticModuleState());

if(parag>250)

{

parag=0;

}

CDC*dc=GetDC();

CRectrec;

GetClientRect(&rec);

CBrushbru;

CPenpen;

Pen(PS_SOLID,4,RGB(100,parag,100));

dc->SelectObject(&pen);

SolidBrush(RGB(parag,100,100));

dc->SelectObject(&bru);

dc->MoveTo(,);

dc->LineTo(,);

dc->Ellipse(&rec);

ReleaseDC(dc);

//TODO:

在此添加调度处理程序代码

}

以上代码实现了控件的简单绘图

注:默认属性中除颜色属性外还有字体等属性,这儿未整理。