И снова CPropertySheet
От: Mr.Incognito Россия  
Дата: 18.03.02 22:08
Оценка:
Доброго времени суток, дамы и господа!!!
Почитал я тут ваш (теперь и наш) форум... Приятно слышать умных и знающих людей!!!
Но все же приходится поднимать вопрос повторно: я мучаюсь с кнопками в 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 Сервер.

Если кто-то понимает в чем дело, подскажите, объясните и т.д.
Заранее благодарен.
Удачи, Mr.Incognito
Re: И снова CPropertySheet
От: Пестриков Леонид Россия  
Дата: 19.03.02 03:32
Оценка:
Здравствуйте Mr.Incognito, Вы писали:

M.I>Доброго времени суток, дамы и господа!!!

M.I>Почитал я тут ваш (теперь и наш) форум... Приятно слышать умных и знающих людей!!!
M.I>Но все же приходится поднимать вопрос повторно: я мучаюсь с кнопками в CPropertySheet. Мне пришлось пользоваться wizard-mode данного класса, и хотел убрать кнопку Help.

Если я правильно понял надо убить кнопку Help в CPropertySheet.
Если ты убъешь вызов: ON_COMMAND(ID_HELP, CWinApp::OnHelp), в классе приложения (его туда собачит мастер), то кнопки не будет.

Удачи.
Re[2]: И снова CPropertySheet
От: Mr.Incognito Россия  
Дата: 19.03.02 08:13
Оценка:
Здравствуйте Пестриков Леонид, Вы писали:

ПЛ>Если я правильно понял надо убить кнопку Help в CPropertySheet.

ПЛ>Если ты убъешь вызов: ON_COMMAND(ID_HELP, CWinApp::OnHelp), в классе приложения (его туда собачит мастер), то кнопки не будет.

ПЛ>Удачи.


Спасибо за ответ, но вопрос состоит не в этом. Убрать кнопку уже удалось. Вопрос в том, что должен делать приведенный код и почему он этого не делает.

Еще раз спасибо.
Удачи, Mr.Incognito
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.