|
Программирование >> Автоматически обновляемые приложения
private void Forml FormClosing(objectsender, FormCiosingEventArgs e) { Устанавливаем значение ключей Width и Height в разделе [Form] файла C:\config.ini в соответствии с размерами формы WritePrivateProfileString( Form , Width , this. Width. ToString О , ( C: \conf ig. ini ) ; WritePrivateProfileString( Form , Height , this . Height. ToString () , (a C: \conf ig. ini ) ; Запоминаем текст в текстовом поле в разделе [Text] файла C:\config.ini WritePrivateProfileString( TextBoxl , Text , textBoxl .Text, (3 C: \conf ig. ini ) ; private void Forml Load(object sender, EventArgs e) { читаем значение Text в секции [TextBoxl] INI-файла config.ini StringBuilder sb = new StringBuilder(256) ; GetPrivateProfileString( TextBoxl , Text , C#.Народные советы , sb, sb.Capacity, (3 C: \config. ini ) ; textBoxl.Text = sb.ToString(); Читаем значение Width из ключа [Form] файла INI file C:\CONFIG.INI this.Width = GetPrivateProfileint( Form , Width , 200, (a C:\config.ini ); Читаем значение Height из ключа [Form] файла INI file C:\CONFIG.INI this.Height = GetPrivateProfileInt( Form , Height , 200, (a C:\config.ini ); Запустите пример и поиграйте с размерами формы и текстом в текстовом поле. Когда убедитесь, что все работает, проделайте следующий трюк. Удалите созданный конфигурационный файл c:\config.ini, из которого считывает нужные данные программа, запустите снова программу и посмотрите на результат. Вы увидите, что форма имеет размеры, не соответствующие размерам в среде раз- Извлечение значков из файлов Функция Extracticon позволяет извлекать значки из ресурсов, которые зашиты в файлах ЕХЕ, DLL, CPL и др. Кроме того, функция позволяет подсчитать количество значков, находящихся в файле. В качестве испытуемого файла возьмем динамическую библиотеку shell32.dll, которая имеется в любой версии Windows. Для удобства в примере (листинг 17.19) я создал две отдельные процедуры GetNumberOficons И ExtractIconsFromFile. Первая процедура позволяет узнать число значков, содержащихся в файле, а вторая может извлечь нужный значок и показать ее на форме. : Листинг 17.19. Извлечение значка из NOTEPAD.EXE [Dlllmport( shell32.dll )] static extern IntPtr Extracticon(IntPtr hinst, string sFileName, int niconlndex); string filename = (Э С:\windows\system32\shell32.dll ; private int GetNumberOfIcon(string str) { return (int)ExtractIcon(this.Handle, str, -1); / <summary> / Извлекает значок из указанного файла в заданную позицию. / </summary> / <param name= str >nyTb к файлу со значками.</parат> / <param name= index >Номер значка в файле.</param> / <param пате= х >Координата X.</param> / <param пате= у >Координата Y.</param> работки, a также некоторый текст в текстовом поле. Как вы уже догадались, если программа не может обнаружить нужный конфигурационный файл, то она использует предопределенные значения, которые указаны в третьем параметре функций GetPrivateProfileString И GetPrivateProfilelnt. Примечание Пример работы с INI-файлами находится в папке INIFiles на прилагаемом диске. private void ExtractlconsFromFile(string str, int index, int x, int y) { IntPtr retval; retval = Extractlcon(this.Handle, str, index); Icon icon = Icon.FromHandle(retval); Graphics g = CreateGraphics(); g.Drawlcon(icon, x, y); g. Dispose (); private void Forml Load(object sender, EventArgs e) { this.Text = GetNuinberOflcon(filename).ToString0 ; private void Forml Paint(object sender, PaintEventArgs e) { Выводим шестнадцатый значок из файла shell32.dll ExtractlconsFromFile(filename, 15, 45, 25); Чтобы подсчитать число значков в файле, достаточно указать процедуре GetNumberOf Icons ПОЛНЫЙ путь К файлу. Как видите, в файле shell32.dll содержится более 200 значков. Если вы хотите посмотреть на какой-нибудь из этих значков, то извлекайте его из файла и рисуйте на форме с помощью метода ExtractlconsFromFile. В нашем примере Я вывожу на форму в позицию (45, 25) шестнадцатый значок. Таким образом, вы можете заглянуть вовнутрь любых файлов со значками, просмотреть их и при необходимости даже использовать их в своих программах. Например, понравившийся вам значок можно вывести в качестве своего значка на форму. Вызов диалогового окна Смена значка Продолжим работать со значками. Существует такая функция Windows API, как pickiconDig. Долгое время она была официально не документирована, но, начиная с Windows 2000, компания Microsoft все-таки выложила описание этой функции на сайте MSDN. Функция PickiconDig вызывает стандартное диалоговое окно Смена значка, позволяющее выбрать значок из модуля.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |