一、引入Dialog技術
---- 下面介紹在制作ActiveX控件時引入有模式對話框技術,制作步驟如下:
創建一新的MFC ActiveX ControlWizard項目,取名為Hello,其他用缺省選項;
在ResourceView頁中新增一對話框資源,命名為IDD_HELLODIALOG,可以在對話
框上放自己的控件;
為對話框資源IDD_HELLODIALOG創建新類CHelloDialog,從CDialog繼承;
確認在HelloCtrl.h中已加入語句#include "HelloDialog.h",為CHelloCtrl類
添加成員變量CHelloDialog m_helloDialog;
用ClassWizard在Automation頁中為CHelloCtrl添加一方法void DoHello(),外
部名亦為DoHello;
void CHelloCtrl::DoHello()
{
// 顯示對話框
m_helloDialog.DoModal();
}
---- 可以用ActiveX Control Test Container測試Hello Control的DoHello方法。
---- 下面介紹在制作ActiveX控件時引入無模式對話框技術,制作步驟如下:
在上面工作的基礎上,用ClassWizard為CHelloCtrl添加WM_CREATE的處理函數
OnCreate,在此創建無模式對話框;
修改DoHello代碼,在此顯示對話框;
int CHelloCtrl::OnCreate
(LPCREATESTRUCT lpCreateStruct)
{
if (COleControl::OnCreate(lpCreateStruct) == -1)
return -1;
// 創建對話框
m_helloDialog.Create(IDD_HELLODIALOG);
return 0;
}
void CHelloCtrl::DoHello()
{
// 顯示對話框
m_helloDialog.ShowWindow(SW_SHOW);
}
---- 下面介紹制作以對話框作為界面的ActiveX控件技術,制作步驟如下:
在上面工作的基礎上,設置對話框資源IDD_HELLODIALOG屬性的Style頁為
Style:Child、Border:Dialog Frame、Title Bar:unchecked;設置More Style
頁為Visible:checked;Control:checked;設置Extended Styles頁為
Static Edge:checked;
在