在ActiveX控件中引入窗体技术
首先,引入对话技术
下面介绍制作ActiveX控件时引入模态对话框的技术,制作步骤如下:
创建一个名为Hello的新MFC ActiveX ControlWizard项目,并使用其他默认选项。
在ResourceView页面中添加一个对话框资源,命名为IDD_HELLODIALOG,可以在对话框上放置自己的控件;
为对话框资源IDD_HELLODIALOG创建一个新的类CHelloDialog,它是从CDialog继承的;
确认HelloCtrl.h中已经添加了语句# include“hello dialog . h”,并添加成员变量CHelloDialog m _ helloDialog对于儿童类;
使用ClassWizard为自动化页面中的CHelloCtrl添加一个方法void DoHello(),外部名称也是do hello
voichello Ctrl::do hello(){//显示对话框m_helloDialog。DoModal();}
可以用ActiveX控件测试容器测试Hello控件的DoHello方法。
下面介绍制作ActiveX控件时引入无模式对话框的技术。制作步骤如下:
在以上工作的基础上,用ClassWizard将WM_CREATE处理函数OnCreate添加到CHelloCtrl中,在这里创建一个无模式对话框;
修改DoHello代码以在此显示对话框;
int chell octrl::OnCreate(LPCREATESTRUCT LPCREATESTRUCT){
if(cole control::OnCreate(LPCREATESTRUCT)=-1)return-1;
//创建对话框
m _ hello dialog . Create(IDD _ hello dialog);
返回0;
}
Void Chello Ctrl::do hello(){
/Show对话框
m _ hello dialog.show窗口(SW _ Show);
}
下面介绍以对话框为界面的ActiveX控件的制作技术,制作步骤如下:
在以上工作的基础上,将对话框资源IDD_HELLODIALOG属性的样式页面设置为Style:Child,border: dialogframe,标题栏:unchecked;将更多样式页面设置为可见:选中;;控制:已检查;将扩展样式页设置为静态边缘:已选中;;
在CHelloCtrl::OnCreate中编写M _ hello dialog . create(IDD _ hello dialog,this)语句;
在CHelloCtrl::OnDraw中写入m _ hello dialog . move window(RC bounds,true);
int chell octrl::OnCreate(LPCREATESTRUCT LPCREATESTRUCT){
if(cole control::OnCreate(LPCREATESTRUCT)=-1)return-1;
//创建对话框
m _ hello dialog . Create(IDD _ hello dialog,this);
返回0;
}
Void Chello Ctrl::ONDRAW(CDC * PDC,Const CRECT & RCBounds,Const CRECT & RC Invalid){
/定位hello对话框
M _ Hello对话框。MoveWindow (RCBounds,true)
}
0条评论