Программирование для Windows NT (том 2)

Функция DlgProc_OnCommand


Когда в диалоговой панели Conversion Options пользователь нажимает одну из кнопок или клавиши <Esc> и <Enter>, в функцию диалога поступает сообщение WM_COMMAND. Обработчик этого сообщения, расположенный в функции DlgProc_OnCommand, определяет текущее состояние переключателей режима перекодировки, расположенных на посверхности диалоговой панели, и записывает соответствующее значение в глобальную переменную fConversionType:

if(IsDlgButtonChecked(hdlg, IDC_OEMANSI))

{

  fConversionType = OEM_TO_ANSI; 

}

else if(IsDlgButtonChecked(hdlg, IDC_ANSIOEM))

{

  fConversionType = ANSI_TO_OEM; 

}

Если при работе с диалоговой панелью пользователь нажимает кнопку Cancel или клавишу <Esc>, содержимое глобальной переменной fConversionType не изменяется.


Функция DlgProc_OnCommand обрабатывает сообщение WM_COMMAND, поступающее в функцию диалога от органов управления, расположенных в диалоговой панели.

Если пользователь нажимает кнопку OK, функция DlgProc_OnCommand извлекает содержимое однострочного текстового редактора (введенное имя заголовока окна), вызывая для этого макрокоманду GetDlgItemText, и сохраняет это содержимое в глобальном буфере szWindowTitle. Затем функция завершает работу диалоговой панели с кодом 1, в результате чего приложение приступит к поиску окна с заданным заголовком.

В том случае, когда пользователь отказался от поиска, нажав в диалоговой панели кнопку Cancel, работа диалоговой панели завершается с нулевым кодом. Поиск окна в этом случае не выполняется.




Функция DlgProc_OnCommand обрабатывает сообщения от органов управления, расположенных в диалоговой панели выбора новой раскладки клавиатуры.

После определения выбранной раскладки она активизируется при помощи функции ActivateKeyboardLayout, как это показано ниже:

uSelectedItem = SendMessage(

  GetDlgItem(hdlg, IDC_COMBO1), CB_GETCURSEL, 0, 0);

ActivateKeyboardLayout(*(lpList + uSelectedItem), 0);



Содержание раздела