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

         

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


// Функция DlgProc_OnCommand

// -----------------------------------------------------

#pragma warning(disable: 4098)

void DlgProc_OnCommand(HWND hdlg, int id,

  HWND hwndCtl, UINT codeNotify)

{

  // Номер выбранной строки в списке типа COMBOBOX

  LRESULT uSelectedItem;

  switch (id)

  {

    // Когда пользователь нажимает клавишу OK,

    // устанавливаем выбранную раскладку клавиатуры

    // и завершаем работу диалоговой панели

    case IDOK:

    {

      // Определяем номер выбранной в списке строки

      uSelectedItem = SendMessage(

        GetDlgItem(hdlg, IDC_COMBO1),

        CB_GETCURSEL, 0, 0);

      // Активизируем выбранную раскладку клавиатуры

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

      // Завершаем работу диалоговой панели

      EndDialog(hdlg, 1);

      return TRUE;

    }

    // Когда пользователь нажимает клавишу Set layout,

    // устанавливаем выбранную раскладку клавиатуры,

    // не завершая работы диалоговой панели

    case IDC_BUTTON1:

    {

      uSelectedItem = SendMessage(

        GetDlgItem(hdlg, IDC_COMBO1),

        CB_GETCURSEL, 0, 0);

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

      return TRUE;

    }

    // Если пользователь нажал кнопку Cancel, отменяем

    // смену расклдаки клавиатуры, завершая

    // работу диалоговой панели

    case IDCANCEL:

    {

      EndDialog(hdlg, 0);

      return TRUE;

    }

       default:

           break;

  }

  return FALSE;

}

Файл setlocal.h (листинг 4.2) содержит прототипы функций, определенных в приложении SETLOCAL.

Листинг 4.2. Файл setlocal\setlocal.h

// -----------------------------------------------------

// Описание функций

// -----------------------------------------------------

LRESULT WINAPI

WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);

void WndProc_OnCommand(HWND hWnd, int id,

  HWND hwndCtl, UINT codeNotify);

void WndProc_OnDestroy(HWND hWnd);




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