日期和时间 ActiveX 控件(VC++ 编写)供 VB 应用程序使用
供 VB 应用程序使用的日期和时间 ActiveX 控件
引言
嗨,这个ActiveX控件教程是为初学者准备的。它是在VC++ 6.0中创建的。
可以将其作为ActiveX教程来学习。
背景
许多程序员试图解释ActiveX控件的概念。
这个程序将帮助你清楚地理解OCX控件的创建和在VC++中的使用。
在VC++中
步骤 1:文件 -> 新建 -> MFC ActiveX控件向导
步骤 2:为项目指定一个你喜欢的名称。
步骤 3:点击“确定”,并在下拉列表中选择控件子类类型为 STAIC。
步骤 4:为子类指定一个名称。
步骤 5:点击“完成”。
步骤 6:在 prjnamectrl.cpp 文件中,为 prjnamectrl 类添加消息处理程序。
1. WM_PAINT - 添加以下代码:
void CShapeCtrl::OnPaint()
{ SetTimer(1,100,0);
CPaintDC dc(this); // 设备上下文,用于绘制
// 不要为绘制消息调用 COleControl::OnPaint()
}
2. WM_TIMER - 添加以下代码:
CDC *cd;
void CShapeCtrl::OnTimer(UINT nIDEvent)
{
if(nIDEvent==1)
{ SYSTEMTIME st;CString cs;
CRect g;g.top=0;g.left=0;g.right=200;g.bottom=18;
CBrush cb;cb.CreateSolidBrush(RGB(192,192,192));
CRgn crg;crg.CreateRectRgn(0,0,200,18);
cd=GetDC(0);
GetLocalTime(&st);
cs.Format("日期:%d-%d-%d 时间:%d:%d:%d",st.wDay,st.wMonth,st.wYear,
st.wHour,st.wMinute,st.wSecond);
cd->FillRect(g,&cb);
cd->SetBkMode(TRANSPARENT);
SetWindowRgn(crg,1);
cd->SetBoundsRect(g,1);
cd->SetTextColor(RGB(0,0,250));
cd->TextOut(0,0,cs,cs.GetLength());
ReleaseDC(cd);
}
COleControl::OnTimer(nIDEvent);
}
步骤 7:修改资源,然后编译并运行。
步骤 8:在Debug/Release文件夹中,你可能会得到 prjname.ocx 文件。
在VB中
步骤 1:创建一个新的项目,作为简单的应用程序。
步骤 2:右键单击“组件”选项卡,选择“组件”。
步骤 3:在“组件”中,浏览并找到你之前创建的OCX文件。
步骤 4:应用并确定。
步骤 5:将组件拖放到你的窗体中。
步骤 6:它就可以工作了!
历史
在此处保持您所做的任何更改或改进的实时更新。