Алекс Jenter - Программирование на Visual C++. Архив рассылки

Здесь есть возможность читать онлайн «Алекс Jenter - Программирование на Visual C++. Архив рассылки» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Программирование на Visual C++. Архив рассылки: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Программирование на Visual C++. Архив рассылки»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

РАССЫЛКА ЯВЛЯЕТСЯ ЧАСТЬЮ
, НА САЙТЕ КОТОРОГО ВСЕГДА МОЖНО НАЙТИ ВСЮ НЕОБХОДИМУЮ РАЗРАБОТЧИКУ ИНФОРМАЦИЮ, СТАТЬИ, ФОРУМЫ, РЕСУРСЫ, ПОЛНЫЙ АРХИВ ПРЕДЫДУЩИХ ВЫПУСКОВ РАССЫЛКИ И МНОГОЕ ДРУГОЕ.

Программирование на Visual C++. Архив рассылки — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Программирование на Visual C++. Архив рассылки», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

}

protected void Parce() {

int iCountMatchs = 0;

try {

// Очищаем лист-бокс

listBox1.Items.Clear();

statusBar1.Text = "Parsing…";

// создаем объект re, задавая в его конструкторе

// шаблон и опции

Regex re = new Regex(tbPattern.Text, tbOptions.Text);

// Выполняем поиск заданного выше шаблона внутри

// текста и текстового поля

tbTextForSearch MatchCollection mc = re.Matches(tbTextForSearch.Text);

iCountMatchs = mc.Count;

// Выводим информацию о количестве найденных вхождений…

statusBar1.Text = "Load list (" + iCountMatchs.ToString() + ")…";

// …и заносим информацию о них в лист-бокс.

listBox1.BeginUpdate();

foreach(Match m in mc) {

// Для хранения информации о найденном вхождении

// мы используем созданный нами класс MyItem.

// Элементы управления (типа лист-бокса) в .Net

// позволяют хранить вместо текстового значения

// объект, а при отображении текста в строке вызывают

// метод – ToString. Так что объект любого класса,

// реализующего метод ToString, может выступать в

// качестве элемента лист-бокса.

listBox1.Items.Add(new MyItem(m.ToString(), m.Index, m.Length));

}

} catch(Exception e1) {

MessageBox.Show(e1.ToString(), "Error");

} finally {

listBox1.EndUpdate();

statusBar1.Text = "Done " + iCountMatchs.ToString();

}

}

Заключение

Это только краткое ведение в регулярные выражения и их использование. Если вы хотите лучше разобраться в этом, попробуйте потренироваться в создании регулярных выражений самостоятельно. Практика показывает, что разбор чужих регулярных выражений практически бесполезен, читать их почти невозможно. Однако лучше научиться пользоваться ими – это часто упрощает жизнь.

ВОПРОС – ОТВЕТ

Как вывести на экран картинку в JPEG/GIF/PNG/др. формате?

7 способов как это сделать

Автор: Павел Блудов

Демонстрационное приложение (WTL) DrawImg (50kb)

Сегодня практически все программы используют различные картинки в качестве элементов интерфейса. Даже существует API функция ::LoadImage(), умеющая загружать файлы в формате bmp, ico и cur. Этого достаточно для панелей управления и диалогов. Но если размер картинки превышает 100x100 пикселов и их нужно несколько, файлы формата bmp использовать не удобно. Хочется что-то вроде jpg или gif.

Тут ::LoadImage() нам уже не помошник. Придется использовать специальные библиотеки. Наибольшей популярностью пользуются:

Independent JPEG Group

Portable Network Graphics

TIFF Software

Intel(R) JPEG Library

Image Library

CXImage

Small JPEG Decoder Library

Все они хорошо документированны и снабжены примерами. Подробное рассмотрение этих библиотек займет слишком много времени и выходит за рамки этой статьи. Давайте лучше уделим внимание некоторым специальным API, предназначенным для работы с файлами изображений.

Способ 1 (OleLoadPicture)

Самый "официальный" способ. Появился вместе с OLE32 и работает до сих пор. Функции OleLoadPicture(Ex)и OleLoadPicturePathумеют загружать картинки в формате BMP, GIF, JPEG, ICO, WMF, и EMF:

#include

HRESULT Load(LPCTSTR szFile) {

CComPtr pStream;

// Load the file to a memory stream

HRESULT hr = FileToStream(szFile, &pStream);

if (SUCCEEDED(hr)) {

// Decode the picture

hr = ::OleLoadPicture(

pStream, // [in] Pointer to the stream that contains picture's data

0, // [in] Number of bytes read from the stream (0 == entire)

true, // [in] Loose original format if true

IID_IPicture, // [in] Requested interface

(void**)&m_pPicture // [out] IPictire object on success

);

}

return hr;

}

HRESULT DrawImg(HDC hdc, const RECT& rcBounds) {

if (m_pPicture) {

// Get the width and the height of the picture

long hmWidth = 0, hmHeight = 0;

m_pPicture->get_Width(&hmWidth);

m_pPicture->get_Height(&hmHeight);

// Convert himetric to pixels

int nWidth = MulDiv(hmWidth, ::GetDeviceCaps(hdc, LOGPIXELSX), HIMETRIC_INCH);

int nHeight = MulDiv(hmHeight, ::GetDeviceCaps(hdc, LOGPIXELSY), HIMETRIC_INCH);

// Display the picture using IPicture::Render

return m_pPicture->Render(

hdc, // [in] Handle of device context on which to render the image

rcBounds.left, // [in] Horizontal position of image in hdc

rcBounds.top, // [in] Vertical position of image in hdc

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Программирование на Visual C++. Архив рассылки»

Представляем Вашему вниманию похожие книги на «Программирование на Visual C++. Архив рассылки» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Алексей Макеев - Смертельный архив
Алексей Макеев
libcat.ru: книга без обложки
Алексей Апухтин
Отзывы о книге «Программирование на Visual C++. Архив рассылки»

Обсуждение, отзывы о книге «Программирование на Visual C++. Архив рассылки» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x