Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Янг Майкл Дж. -> "Visual С++ 6. Полное руководство: В 2 т.(том2)" -> 92

Visual С++ 6. Полное руководство: В 2 т.(том2) - Янг Майкл Дж.

Янг Майкл Дж. Visual С++ 6. Полное руководство: В 2 т.(том2) — Бином, 2006. — 530 c.
Скачать (прямая ссылка): vicualcc2006t2.djvu
Предыдущая << 1 .. 86 87 88 89 90 91 < 92 > 93 94 95 96 97 98 .. 173 >> Следующая

Созданный или импортированный значок сохраняется в файле .ico и включается в программные ресурсы при построении программы. Перед отображением значка при ее выполнении необходимо вызвать функцию Loadlcon класса CWinApp, чтобы загрузить значок из ресурсов и получить его дескриптор, как в следующем фрагменте программы.
HICON HIcon;
HIcon = AfxGetApp ()->LoadIcon (IDI_ICONl);
В примере IDI_IC0N1 — идентификатор, присвоенный значку при его создании или импортировании. Заметим: функция AfxGetApp вызывается, чтобы получить указатель на объект программы приложения, используемый для вызова функции Loadlcon. Если ресурс значка содержит несколько изображений, например, 16-цветное изображение 32x32 бита и 2-цветное монохромное 32x32 бита, то автоматически будет загружено изображение, наиболее подходящее для текущего видеорежима.
Совет
Перед вызовом функции Loadlcon для загрузки отдельного значка из ресурсов программы можно вызвать функцию LoadStandardlcon или LoadOEMIcon класса CWinApp, чтобы получить дескриптор предопределенного значка, предоставляемый Windows. Подробную документацию по этим двум функциям смотрите в следующих разделах справочной системы: Visual С++ Documentation, Reference, Microsoft Foundation Class Library and Templates, Microsoft Foundation Class Library, Class Library Reference, CWinApp.
Для отображения значка внутри окна вызовите функцию Drawicon класса сое.
BOOL Drawicon (int х, int у, HICON hlcon);
Параметры х и у задают координаты левого верхнего угла места расположения значка. Параметр Ысоп — дескриптор значка, получаемый из функции Loadlcon, LoadStandardlcon ИЛИ LoadOEMIcon.
Например, следующая функция загружает и отображает в центре окна представления значок, созданный или импортированный в проект.
void CProgView::Displaylcon () {
CClientDC ClientDC (this); HICON HIcon; int IconHeight; int IconWidth; RECT Rect;
HIcon = AfxGetApp ()->LoadIcon (IDI ICON1);
GetClientRect (SRect);
IconWidth = : : GetSystemMetri.es (SM_CXICON) ; IconHeight = ::GetSystemMetrics (SM_CYICON); ClientDC.Drawlcon
(Rect.right / 2 - IconWidth / 2,
Rect.bottom 12- IconHeight / 2,
HIcon);
}
Обратите внимание: эта функция вызывает функцию Win32 API : :GetSystemMetrics, чтобы получить размер значка для текущего видеорежима. Полученная информация используется для вычисления координат левого верхнего угла значка, размеры которого загружены функцией Loadlcon и всегда равны текущим системным размерам sm_cxicon и sm cyicon. Если ресурс значка не имеет соответствующего изображения, то функция Loadlcon масштабирует его.
Программа BitDemo
Создадим программу ВіШето, иллюстрирующую средства разработки растрового изображения и отображающую растровые изображения в окне представления программы. Программа ВіШето отображает шахматную доску, заполняющую окно представления. При изменении размера окна, изображение растягивается или сжимается таким образом, чтобы окно всегда было заполнено (рис. 20.3).
Рис. 20.3. Окно программы ВЮето: изображение шахматной доски всегда заполняет окно, независимо от его размеров или пропорций
Для генерации исходных файлов программы используйте мастер AppWizard, присвоив проекту имя BitDemo, а в диалоговых окнах (Step 1 — Step 6) мастера AppWizard выберите те же установки, что и для программы Greet в гл. 9.
Проектирование растровых изображений
Сразу после генерации исходных файлов спроектируйте растровое изображение, генерируемое программой. Для этого выберите команду Resource... в меню Insert и тип ресурса Bitmap в диалоговом окне Insert Resource. При щелчке на кнопке New графический редактор создаст пустое растровое изображение и присвоит ему стандартный идентификатор IDB_BITMAP1, который вы не должны изменять. Далее используйте инструменты и команды графического редактора для создания растрового изображения (рис. 20.4).
ПзВіЮето rc IDB_BIIMAP1 [Cnglish (U.S )] (Bilinap) _ НІІ1ІЗ
Рис. 20.4. Растровое изображение idb_bitmapi, спроектированное для программы BitDemo
Растровое изображение можно спроектировать альтернативным методом с помощью программы Paint Windows 95 или другой программы рисования, сохраняющей рисунки в формате растрового изображения. Готовый рисунок сохраните в файле .bmp или .dib и возвратитесь в Visual С++. Импортируйте растровое изображение в программу BitDemo, выбрав команду Resource... в меню Insert, щелкнув на кнопке Import в диалоговом окне Insert Resource, а затем выбрав имя файла, в котором хранится растровое изображение. После этого проверьте, имеет ли растровое изображение идентификатор ЮВ_В1ТМАР1.
Модификация программы
Чтобы отобразить растровое изображение, необходимо изменить класс представления программы. В файле BitDemoView.h в начале определения класса CBitDemoView определите переменные.
class CBitDemoView : public CView {
protected:
CBitmap m_Bitmap; int m_BitmapHeight; int m_BitmapWidth;
Переменная m_Bitmap является объектом растрового изображения, а m_BitmapHeight и m_BitmapWidth хранят его размеры. Далее в файле BitDemoView.cpp эти переменные инициализируются внутри конструктора класса следующим образом.
Предыдущая << 1 .. 86 87 88 89 90 91 < 92 > 93 94 95 96 97 98 .. 173 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100