Создание Windows-приложений на основе Visual C#

         

Диалоговые окна. Библиотека user32.dll


Всякий раз, когда мы начинаем изучать новый язык программирования, в число первых примеров входит вывод текстовой строки на экран. Операционная система Windows содержит определенное число типов диалоговых окон, с помощью которых пользователь получает уведомления о различных событиях. Создайте новое Windows-приложение и назовите его MessageBox. Располагаем на форме четыре кнопки и устанавливаем следующие свойства формы и кнопок:

Form1, форма, свойствоЗначение
Size232; 144
Text Message Box
Button1, свойствоЗначение
NamebtnABORTRETRYIGNORE
Location8; 8
Size200; 23
TextПрервать Повторить Пропустить
Button2, свойствоЗначение
NamebtnYESNOCANCEL
Location8; 32
Size200; 23
TextДа Нет Отмена
Button3, свойствоЗначение
NamebtnOK
Location8; 56
Size200; 23
TextOK
Button4, свойствоЗначение
NamebtnYESNO
Location8; 80
Size200; 23
TextДа Нет

Снова добавляем к проекту класс и называем его WinAPIClass.cs.

Листинг этого класса:

Листинг 5.2.

(html, txt)

В перечислении MessageBoxType приводятся различные типы стандартных окон и иконок. В обработчиках кнопок выбираем несколько вариантов окон и иконок:

Листинг 5.3.

(html, txt)

Запускаем приложение. При нажатии на кнопки появляются соответствующие диалоговые окна (рис. 5.2).


Рис. 5.2.  Результат работы приложения MessageBox

На языке С метод в обработчике будет выглядеть следующим образом (сравните преобразование типов данных!):

INT MessageBox(HWND hWnd, LPCTSTR lpText, LPCTSTR lpCaption, UINT uType);

На диске, прилагаемом к книге, вы найдете приложение MessageBox. (Code\Glava5\MessageBox).


} /// <summary> /// Тип возвращаемого значения. /// </summary> public enum MessageBoxReturnType:int { IDABORT = 3, IDCANCEL = 2, IDCONTINUE = 11, IDIGNORE = 5, IDNO = 7, IDOK = 1, IDRETRY = 4, IDTRYAGAIN = 10, IDYES = 6 } #endregion } }

Листинг 5.2.

В перечислении MessageBoxType приводятся различные типы стандартных окон и иконок. В обработчиках кнопок выбираем несколько вариантов окон и иконок:

private void btnABORTRETRYIGNORE_Click(object sender, System.EventArgs e) { //Текст сообщения string text = "Hello World"; //Заголовок окна string title = "From WinApi"; // Тип данных IntPtr — указатель на объект. WinAPIClass.MessageBox(IntPtr.Zero, text, title, (uint)(WinAPIClass.MessageBoxType.MB_ABORTRETRYIGNORE | WinAPIClass.MessageBoxType.MB_ICONQUESTION));

}

private void btnYESNOCANCEL_Click(object sender, System.EventArgs e) { string text = "Hello World"; string title = "From WinApi"; WinAPIClass.MessageBox(IntPtr.Zero, text, title, (uint)(WinAPIClass.MessageBoxType.MB_YESNOCANCEL | WinAPIClass.MessageBoxType.MB_ICONINFORMATION)); }

private void btnOK_Click(object sender, System.EventArgs e) { string text = "Hello World"; string title = "From WinApi"; WinAPIClass.MessageBox(IntPtr.Zero, text, title, (uint)(WinAPIClass.MessageBoxType.MB_OK | WinAPIClass.MessageBoxType.MB_ICONSTOP));

}

private void btnYESNO_Click(object sender, System.EventArgs e) { string text = "Hello World"; string title = "From WinApi"; WinAPIClass.MessageBox(IntPtr.Zero, text, title, (uint)(WinAPIClass.MessageBoxType.MB_YESNO | WinAPIClass.MessageBoxType.MB_ICONEXCLAMATION));

}

Листинг 5.3.

Запускаем приложение. При нажатии на кнопки появляются соответствующие диалоговые окна (рис. 5.2).


Рис. 5.2.  Результат работы приложения MessageBox

На языке С метод в обработчике будет выглядеть следующим образом (сравните преобразование типов данных!):

INT MessageBox(HWND hWnd, LPCTSTR lpText, LPCTSTR lpCaption, UINT uType);

На диске, прилагаемом к книге, вы найдете приложение MessageBox. (Code\Glava5\MessageBox).




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