Операционная система Windows 95 для программиста



         

Исходные тексты приложения Property Sheet Demo - часть 6


// ----------------------------------------------------- // Функция DlgProc3_OnNotify // Обрабатывает извещение от третьей страницы блокнота // ----------------------------------------------------- LRESULT DlgProc3_OnNotify(HWND hdlg, int idFrom, NMHDR* pnmhdr) { switch(pnmhdr->code) { // Выполняем проверку длины ключевого слова, // которое не должно быть длиннее 8 символов case PSN_KILLACTIVE: { char szTempBuf[80];

// Получаем новое ключевое слово во временный буфер GetWindowText(GetDlgItem(hdlg, IDC_EDITKEYWORD), szTempBuf, 80);

// Проверяем его длину if(lstrlen(szTempBuf) > 8) { // Если длина больше 8 символов, выводим // предупреждающее сообщение MessageBox(NULL, "Too long keyword, " "must be shorter than 8 characters", szAppName, MB_OK | MB_ICONEXCLAMATION);

// Отменяем закрытие страницы блокнота SetWindowLong(hdlg, DWL_MSGRESULT, TRUE);

// Отменяем обновление параметров return TRUE; } else { // Если длина сообщения правильная, разрешаем // закрытие страницы блокнота и // обновление параметров SetWindowLong(hdlg, DWL_MSGRESULT, FALSE); return FALSE; } break; }

case PSN_APPLY: { GetWindowText(GetDlgItem(hdlg, IDC_EDITKEYWORD), opt.szKeyWord, 80); break; } default: break; } return FALSE; }

// ----------------------------------------------------- // Функция DlgProc3_OnCommand // ----------------------------------------------------- #pragma warning(disable: 4098) void DlgProc3_OnCommand(HWND hdlg, int id, HWND hwndCtl, UINT codeNotify) { // Сообщение от редактора текста if(id == IDC_EDITKEYWORD) { // Если пользователь изменил ключевое слово в окне // редактирования, разблокируем кнопку "Apply" if(codeNotify == EN_CHANGE) { PropSheet_Changed(GetParent(hdlg), hdlg); } } return FALSE; }

В файле psheet.h (листинг 6.2) находятся описания функций, определенных в приложении Property Sheet Demo.

Листинг 6.2. Файл psheet\psheet.h

// ----------------------------------------------------- // Описание функций // ----------------------------------------------------- LRESULT WINAPI WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); BOOL WndProc_OnCreate(HWND hWnd, LPCREATESTRUCT lpCreateStruct); void WndProc_OnDestroy(HWND hWnd); void WndProc_OnCommand(HWND hWnd, int id, HWND hwndCtl, UINT codeNotify); LRESULT WndProc_OnNotify(HWND hWnd, int idFrom, NMHDR FAR * pnmhdr); BOOL APIENTRY DlgProc1(HWND hdlg, UINT msg, WPARAM wParam, LPARAM lParam); BOOL DlgProc1_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam);




Содержание  Назад  Вперед