Чтобы пользователи контрольного элемента получили
Чтобы пользователи контрольного элемента получили доступ к новой странице, сделайте следующие изменения в файле реализации контрольного элемента:
BEGIN_PROPPAGEIDS(CMyCtrlCtrl, 2)
PROPPAGEID(CMyCtrlPropPage::guid)
PROPPAGEID(CAddtlPropPage::guid)
...
END_PROPPAGEIDS(CMyCtrlCtrl)
Здесь CAddtlPropPage – имя нового класса. В макросе
BEGIN_PROPPAGEIDS измените второй параметр (счетчик страниц) , увеличив его на 1.
В этот же файл реализации элемента включите h-файл нового класса страницы.
На следующем шаге добавьте два новых строковых ресурса, которые обеспечат имя и заголовок для новой страницы свойств.
1. Откройте вкладку ResourceView.
2. Дважды щелкните на папке String Table.
3. Щелкните на пустой строке в правой части окна и впечатайте заголовок строки, например, Новая страница. При этом откроется окно свойств, в котором в элементе Caption появится введенная строка. В элементе ID впечатайте обозначение идентификатора, например, IDS_ADDPAGE. Нажмите кнопку OK.
4. Повторите пункт 3 для вставки строки с заголовком для страницы, например, Дополнительная страница, с идентификатором IDS_ADDPPG_CAPTION.
5. В файле .CPP Вашего нового класса (например, CAddtlPropPage) измените CAddtlPropPage::CAddtlPropPageFactory::UpdateRegistry так, чтобы в функцию AfxOleRegisterPropertyPageClass
передавался в качестве параметра идентификатор диалога-страницы свойств:
BOOL CAddtlPropPage::CAddtlPropPageFactory::UpdateRegistry(BOOL bRegister)
{
if (bRegister)
return AfxOleRegisterPropertyPageClass(AfxGetInstanceHandle(),
m_clsid, IDS_ADDPAGE);
else
return AfxOleUnregisterClass(m_clsid, NULL);
}
6. Измените конструктор нового класса CAddtlPropPage
так, чтобы IDS_ADDPPG_CAPTION передавался в
COlePropertyPage конструктор:
CAddtlPropPage::CAddtlPropPage() :
// ****** Add your code below this line ********** //
COlePropertyPage(IDD, IDS_ADDPPG_CAPTION)
// ****** Add your code above this line ********** //
{
//{{AFX_DATA_INIT(CAddtlPropPage)
// NOTE: ClassWizard will add member initialization here
// DO NOT EDIT what you see in these blocks of generated code !
//}}AFX_DATA_INIT
}
Теперь Вы можете перестроить проект и протестировать элемент в Test Container, чтобы увидеть новую страницу свойств.
Содержание Назад Вперед