Управление вкладками: Как предотвратить изменение выбора?

Мой проект — простое диалоговое окно WIN32 с вкладкой.
При некоторых условиях я хочу запретить пользователю изменять вкладку. МИЗ документация довольно просто —

Возвращает ИСТИНА, чтобы предотвратить изменение выбора, или ЛОЖЬ, чтобы разрешить изменение выбора.

Однако это просто не работает!

Код:

	case WM_NOTIFY:
if (((LPNMHDR)lParam)->idFrom == IDC_DEVTABS)
{
if (((LPNMHDR)lParam)->code == TCN_SELCHANGING)
return  (INT_PTR)TRUE;
//return  (INT_PTR)OnSelChanging(hDlgTab);
if (((LPNMHDR)lParam)->code == TCN_SELCHANGE)
OnSelChanged(hDlgTab);

return  (INT_PTR)TRUE;
}

0

Решение

Если ваш элемент управления находится в диалоговом окне, как я полагаю, вам нужно вернуть значение через DWLP_MSGRESULT данные окна.

SetWindowLongPtr(hWndDlg, DWLP_MSGRESULT, TRUE);
return TRUE;

Возвращаемое значение из диалоговой процедуры указывает диспетчеру диалогов, было ли обработано сообщение. Фактическое возвращаемое значение для сообщения предоставляется через DWLP_MSGRESULT,

Как всегда, увидеть Блог Раймонда для хорошего обсуждения этого.

4

Другие решения


По вопросам рекламы [email protected]