|
Программирование >> Автоматически обновляемые приложения
\ Листинг 5-2.. Поддержка частичных классов partial class Forml { и так далее Подобное разделение кода предотвращает случайное изменение кода, которое может привести к краху приложения, а также позволяет программисту сосредоточиться на написании собственного кода, решающего конкретные задачи. Еще один вопрос, возникающий у программистов- куда подевалась точка входа в приложение, то есть метод Main? Поскольку статический метод Main не относится ни к какой форме, то разработчики Microsoft перенесли этот метод в отдельный файл Program.cs (листинг 5.3). \ Листинг 5.3. Код для файла Program.cs using Systems-using System.Collections.Generic-using System.ComponentModel; using System.Data; using System. Drawings-using Systems-using System.Collections.Generic-using System.Windows.Fonns; namespace WindowsApplicationl { static class Program { / <summary> / The main entry point for the application. / </summary> [STAThread] static void Main() Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false) ; Application.Run(new Forml()); Экран Как определить разрешение экрана Для определения размеров экрана воспользуйтесь свойством PrimaryScreen.Bounds КЛаССа Screen ИЗ пространства ИМен System.windows.FormsScreen, каК ПОКазано ВЛИСТИНГе 5.4. ; Листинг 5.4 Определение размеров экрана private void butScreenRes Click(object sender, EventArgs e) { Определяем размеры экрана textBoxl.Text = Screen.PrimaryScreen.Bounds.Width.ToString() + x + Screen.PrimaryScreen.Bounds.Height.ToString0; Как определить рабочую область экрана без панели задач? Иногда требуется узнать размеры не всего экрана, а только его рабочей части, в которую не входит панель задач, а также другие экранные панели (например, существовал пакет Microsoft Office, который использовал собственную панель). В этом случае вам поможет свойство screen. GetWorkingArea, способное определить рабочую область экрана без панели задач. Как его использовать, показано в листинге 5.5. Листинг 5.5. Определение рабочей области экрана private void butWorkArea Click(object sender, EventArgs e) { Определяем рабочую область экрана textBoxl.Text = Screen.GetWorkingArea(this).Width.ToString() + x + Screen.GetWorkingArea(this).Height.ToString(); На этом краткое вступление можно считать законченным. Перейдем к советам, которые относятся к свойствам экрана и формы. Как изменить разрешение экрана программным путем На данный момент .NET Framework не имеет встроенных методов для изменения разрешения экрана. Поэтому нам придется использовать две функции Windows API: EnumDisplaySettings И ChangeDisplaySetting. Описание ЭТИХ функций есть в справочнике по функциям API на прилагаемом к книге компакт-диске, поэтому ограничимся только кодом программы, приведенным в листинге 5.6. i Листинг! 1е[Пр экрана using System.Runtime.InteropServices; [Dlllmport( user32.dll ) ] public static extern int EnumDisplaySettings( string deviceName, int modeNum, ref DEVMODE devMode); [Dlllmport( user32.dll )] public static extern int ChangeDisplaySettings( ref DEVMODE devMode, int flags); [StructLayout(LayoutKind.Sequential)] public struct DEVMODE { [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32) public string dmDeviceName; public short dmSpecVersion; public short dmDriverVersion; public short dmSize; public short dmDriverExtra; public int dmFields; public short dmOrientation; public short dmPaperSize; public short dmPaperLength; public short dmPaperWidth; Примечание Примеры находятся в папке AboutScreen на прилагаемом диске.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |