Операционная система Microsoft Windows 3.1 для программиста. Дополнительные главы


Листинг 4.3. Файл hlpmore/helpmwh.cpp - часть 3


case CM_FILEPRINTER_SETUP: case CM_FILEPAGE_SETUP: case CM_FILEPRINT: case CM_FILESAVEAS: case CM_FILESAVE: case CM_FILEOPEN: case CM_FILENEW: { if(bF1) { WinHelp(hwnd,"hlpmore.hlp", HELP_CONTEXT, (DWORD)IDN_file); bF1 = FALSE; } else MessageBox(hwnd, "Меню File", "WinHelp Demo", MB_OK); return 0; }

case CM_EDITPASTE: case CM_EDITCOPY: case CM_EDITCUT: case CM_EDITUNDO: { if(bF1) { WinHelp(hwnd,"hlpmore.hlp", HELP_CONTEXT, (DWORD)IDN_edit); bF1 = FALSE; } else MessageBox(hwnd, "Меню Edit", "WinHelp Demo", MB_OK); return 0; }

case CM_VIEWNORMAL: case CM_VIEWZOOM: { if(bF1) { WinHelp(hwnd,"hlpmore.hlp", HELP_CONTEXT, (DWORD)IDN_view); bF1 = FALSE; } else MessageBox(hwnd, "Меню View", "WinHelp Demo", MB_OK); return 0; }

case CM_FILEEXIT: { DestroyWindow(hwnd); return 0; }

default: return 0; } }

case WM_DESTROY: { PostQuitMessage(0); return 0; }

default: break; } return DefWindowProc(hwnd, msg, wParam, lParam); }

// ===================================== // Функция DldProc // ===================================== #pragma argsused BOOL CALLBACK _export DlgProc(HWND hdlg, UINT msg, WPARAM wParam, LPARAM lParam) { switch(msg) { case WM_INITDIALOG: { return TRUE; }

case WM_COMMAND: { switch(wParam) { case IDOK: case IDCANCEL: { EndDialog(hdlg, 0); return TRUE; } } } } return FALSE; }

В функции WinMain после обычной инициализации загружается таблица акселераторов, состоящая из одного определения. Комбинации клавиш <Shift+F1> ставится в соответствие сообщение CM_HELPINDEX, попадающее в функцию окна приложения при выборе строки "Index" из меню "Help". Используя эту комбинацию клавиш, пользователь сможет отобразить раздел оглавления справочной системы.

Функция окна обрабатывает сообщение WM_ENTERIDLE, которое и помогает нам организовать контекстно-зависимую подсказку.

Это сообщение попадает в функцию окна приложения в том случае, если активизировано меню или диалоговая панель, и эти органы управления находятся в состоянии ожидания.




Начало  Назад  Вперед



Книжный магазин