Операционная система Windows 95 для программиста© Александр Фролов, Григорий ФроловТом 22, М.: Диалог-МИФИ, 1993, 271 стр. 6.2. Обработка извещенийКогда пользователь нажимает кнопки OK, Cancel или Help, расположенные в нижней части окна блокнота или кнопки Back, Next или Finish, расположенные в нижней части окна органа управления Wizard, функция диалога текущей страницы получает сообщение WM_NOTIFY . Код извещения передается через поле code структуры NMHDR , адрес которой находится в параметре lParam сообщения WM_NOTIFY. Для органов управления Propery Sheet и Wizard
определены следующие коды извещений:
Обработчики извещений могут возвращать значение FALSE или TRUE, однако в большинстве случаев дополнительно необходимо устанавливать код завершения в структуре данных диалога с помощью функции SetWindowLong. При этом в качестве второго параметра для этой функции следует указать значение DWL_MSGRESULT. В следующем фрагменте кода, который взят из приложения "Property Sheet Demo", проверяется длина строки szTempBuf. Если она больше 8, возвращается значение TRUE, а если меньше - FALSE: if(lstrlen(szTempBuf) > 8) { SetWindowLong(hdlg, DWL_MSGRESULT, TRUE); return TRUE; } else { SetWindowLong(hdlg, DWL_MSGRESULT, FALSE); return FALSE; } Более подробную информацию об использовании этих извещений вы сможете найти в справочной системе SDK. Самые нужные из них будут описаны в разделах "Приложение Property Sheet Demo" и "Wizard Demo". |