Школа создателей компьютерных игр

BannerDrive.ru
[Главная] [С чего начать?] [Дистанционное обучение] [Статьи] [Обучалки] [Книги] [Софт] [Форум] [Ссылки] [О сайте]

Установка значка



Подпишитесь на рассылку "Создание компьютерных игр"

Рассылки Subscribe.Ru
Создание компьютерных игр

Рассылка выходит раз в месяц.


Понравился сайт? Узнайте, как помочь сайту.


Рекомендуемые книги


Андре Ламот.
Программирование трехмерных игр для Windows. Советы профессионала по трехмерной графике и растеризации


Андре Ламот.
Программирование игр для Windows. Советы профессионала


Проголосуйте за сайт в рейтинге GameTop!
(нажмите на кнопку рейтинга)

GameTop - рейтинг игровых ресурсов. Портал Rolemancer (www.rolemancer.ru)

Не забывайте, что результаты рейтинга обновляются раз в неделю. Пожалуйста, голосуйте почаще!


Статистика посещаемости

Rambler's Top100

Горизонтальная прокрутка | Все обучалки раздела | Установка курсора

Описание

Рассматриваются действия, необходимые для установки значка в приложение Windows.

Программа подключает значок к приложению, используя файл ресурсов.

Скачать обучалку (Visual C++ 6)

Работа программы

Исходный код

/*
   Done by TheTutor -- 9/24/01
// Перевод © 2004 Евгений Казеко
// www.gamecoder.kazeko.com
// evgeniy@kazeko.com

      Установка значка в приложение - Эта обучалка наиболее пригодится, если вы
      используете VC++6.0, потому что это компилятор, который использую я.
      Ниже я опишу шаги для создания и подключения значка

      1)      Я выбираю на панели инструментов "Project"
      2)      Затем я выбираю "Add to Project", затем "New..."
      3)      После этого я выбираю "Resource Script" - я набираю имя "IconRes" для
            имени ресурса
      4)      Я нажимаю правой кнопкой на описание ресурса (в виде маленькой папки с
            именем IconRes.rc)
      5)      Затем я выбираю "Insert...", "Icon" как тип ресурса и нажимаю кнопку "New"
      6)      После этого я использую инструменты рисования для создания значка

      Теперь мы готовы поместить его в нашу программу
      
*/

#include <windows.h>
#include "resource.h"

#define class_name "GT_Icon"


// WinProc
LRESULT CALLBACK WinProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam);

// WinMain
int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hprev, PSTR cmdline, int ishow)
{

    HWND hwnd;
    MSG msg;
    WNDCLASSEX wndclassex = {0};
      
    // Заполняем поля WNDCLASSEX, которые нам нужны
    wndclassex.cbSize = sizeof(WNDCLASSEX);
    wndclassex.style = CS_HREDRAW | CS_VREDRAW;
    wndclassex.lpfnWndProc = WinProc;
    wndclassex.hInstance = hinstance;
    wndclassex.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH); // Задаем черный фон окна
    wndclassex.lpszClassName = class_name;

      // "hIcon" является членом WNDCLASSEX, который нам нужно заполнить, чтобы
      // наше приложение имело значок

      // По параметрам:
      // hinstance -- ссылка на экземпляр окна, мы передаем его функцией WinMain()
      // MAKEINTRESOURCE(IDI_ICON1) -- Второй параметр это ссылка на загружаемое изображение.
      //                                                 Если вы заметили, то когда мы создаем значок, также создается
      //                                                 заголовочный файл "resource.h". Я добавил этот файл в проект.
      //                                                 Если вы посмотрите на него, вы заметите, что в нем есть
      //                                                 определение #define для IDI_ICON1.
      //                                                 MAKEINTRESOURCE это макрос, который преобразует целочисленные
      //                                                 величины в тип ресурсов, совместимый с функциями обработки
      //                                                 ресурсов Win32. Он преобразует это целое число в соответствующее
      //                                                 "ссылочное имя" ресурса
      // IMAGE_ICON -- определяет тип загружаемого изображения
      // 0 -- ширина загружаемого изображения в пискелях
      // 0 -- высота изображения в пискелях
      // LR_DEFAULTSIZE -- использование системных значений для значков (а также курсоров) при загрузке
      //                               значка, если ширина и высота (два параметра до этого) установлены равными нулю.
      
      wndclassex.hIcon = (HICON)LoadImage(hinstance,
                                          MAKEINTRESOURCE(IDI_ICON1),
                                          IMAGE_ICON,0,0,LR_DEFAULTSIZE);

    RegisterClassEx(&wndclassex);

    hwnd = CreateWindowEx(WS_EX_CLIENTEDGE, // У окна будет жирная рамка
                                      class_name,
                                      "Adding an Icon",
                                      WS_OVERLAPPEDWINDOW,
                                      CW_USEDEFAULT, // координата х верхнего угла по умолчанию
                                      CW_USEDEFAULT, // координата y верхнего угла по умолчанию
                                      CW_USEDEFAULT, // ширина окна по умолчанию
                                      CW_USEDEFAULT, // высота окна по умолчанию
                                      NULL,
                                      NULL,
                                      hinstance,
                                      NULL);

    // Выводим и обновляем окно
    ShowWindow(hwnd, ishow);
    UpdateWindow(hwnd);

      while(1)
      {
            if(PeekMessage(&msg,NULL,0,0,PM_REMOVE))
            {
                  if(msg.message == WM_QUIT)
                        break;
                        
                  TranslateMessage(&msg);
                  DispatchMessage(&msg);
            }
            else
            {
                  // Выполняем действия
                  
            } // конец if(PeekMessage(&msg,NULL,0,0,PM_REMOVE))...else

      } // конец while(1)

      UnregisterClass(class_name,hinstance); // Освобождаем WNDCLASSEX

            return msg.wParam;
}


// В WinProc не будем делать слишком многого
LRESULT CALLBACK WinProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam)
{
    PAINTSTRUCT ps;
            
    switch(message)
    {
            case WM_PAINT:
                  BeginPaint(hwnd, &ps);
                  EndPaint(hwnd, &ps);
                        return 0;
      
            case WM_CLOSE:
            case WM_DESTROY:

                  PostQuitMessage(0);
                        return 0;
    
      } // конец switch(message)

    return DefWindowProc(hwnd, message, wparam, lparam);
}

/*      Есть другая функция для загрузки значка: 

      LoadIcon()

      Однако, она устаревает. MSDN говорит, что следует использовать LoadImage(), что
      мы и делаем.
*/

/*
|  TheTutor                    
|  thetutor@gametutorials.com  
|  © 2000-2002 GameTutorials   
*/
// Перевод © 2004 Евгений Казеко
// www.gamecoder.kazeko.com
// evgeniy@kazeko.com

Скачать обучалку (Visual C++ 6)

Горизонтальная прокрутка | Все обучалки раздела | Установка курсора

[Главная] [С чего начать?] [Дистанционное обучение] [Статьи] [Обучалки] [Книги] [Софт] [Форум] [Ссылки] [О сайте]

Copyright © 2003-2005 Евгений Казеко. Все права защищены. E-mail: evgeniy@kazeko.com

Законная регистрация товарного знака, помощь адвокатов , Энергопромстрой: резервуары и емкость нержавеющая сталь, для хранения продуктов! , печать брошюр