Когда пользователь нажимает кнопку «ОК» или «ПРИМЕНИТЬ» на листе свойств, а программа определяет, что данные на какой-то странице недействительны, как я могу заставить страницу, содержащую ошибку, отображаться вместе с окном сообщения, описывающим ошибку?
В настоящее время процедура проверки делает следующее при обработке уведомления PSN_APPLY.
MessageBox (hDlg, "Data must be positive!", "Error", MB_OK);
SetWindowLong (hDlg, DWL_MSGRESULT, PSNRET_INVALID);
Это работает нормально, если в данный момент отображается страница, выполняющая проверку (A), но если отображается какая-то другая страница (B), появляется окно сообщения с отображаемой страницей (B), затем, когда на окно сообщения получен ответ, страница с ошибкой проверки (A). Я подумал об установке какого-нибудь флага, чтобы когда эта страница (A) получала уведомление PSN_SETACTIVE, она отображала окно сообщения, но это выглядит как фейк.
Win32 API на С++, без MFC, без NET, ничего особенного.