Программирование >>  Автоматически обновляемые приложения 

1 ... 153 154 155 [ 156 ] 157 158 159 ... 170


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 вызывает стандартное диалоговое окно Смена значка, позволяющее выбрать значок из модуля.



1 ... 153 154 155 [ 156 ] 157 158 159 ... 170

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика