Доброго времени суток, дамы и господа!!!
Почитал я тут ваш (теперь и наш) форум... Приятно слышать умных и знающих людей!!!
Но все же приходится поднимать вопрос повторно: я мучаюсь с кнопками в CPropertySheet. Мне пришлось пользоваться wizard-mode данного класса, и хотел убрать кнопку Help. Благодаря помощи господ профессионалов мне это удалось. Но...
Объясните мне вот что, если вас не затруднит:
Если смотреть в MSDN, то он советует делать так
1. Для версии common controls выше 5.80 — установить флаг PSH_NOCONTEXTHELP в поле dwFlags структуры PROPSHEETHEADER.
2. Иначе, воспользоваться callback function:
int CALLBACK RemoveContextHelpProc(HWND hwnd, UINT message, LPARAM lParam)
{
switch (message) {
case PSCB_PRECREATE:
// Remove the DS_CONTEXTHELP style from the dialog template
if (((LPDLGTEMPLATEEX)lParam)->signature == 0xFFFF){
((LPDLGTEMPLATEEX)lParam)->style &= ~DS_CONTEXTHELP;
}
else {
((LPDLGTEMPLATE)lParam)->style &= ~DS_CONTEXTHELP;
}
return TRUE;
}
return TRUE;
}
установив перед этим в поле dwFlags флаг PSH_USECALLBACK и в поле pfnCallBack указатель на функцию (в нашем случае RemoveContextHelpProc). Подробно это описано в MSDN, Platform SDK -> User Interface Services -> Windows Common Controls -> Property Sheets.
НО!!!!!
Я пробовал. Первый вариант не работает в силу полного не распознавания указанного флага, а второй — просто ничего не меняет, даже в самой (LPDLGTEMPLATEEX)lParam... Сразу скажу, у меня стоит 6-ая студия, Винды 2000 Сервер.
Если кто-то понимает в чем дело, подскажите, объясните и т.д.
Заранее благодарен.