crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Установить иконку для окна., wxIcon из wxBitmap!
Lestat
  опции профиля:
сообщение 11.6.2008, 18:24
Сообщение #1


Студент
*

Группа: Новичок
Сообщений: 12
Регистрация: 11.6.2008
Из: Москва
Пользователь №: 198

Спасибо сказали: 0 раз(а)




Репутация:   0  


я переделал немного исходник wxInclude и теперь получаю два файла, в которых содержаться мои изображения, вида:

resources.hpp
/*
    Automatic generated header by:

        wxInclude by Kim De Deyn, use --help for more information.
        Version 1.0, compiled at Jun  6 2008 01:24:38

    Header: resources
    Macros: yes
    Const: yes
*/

#ifndef _WXINCLUDE_RESOURCES_H_
#define _WXINCLUDE_RESOURCES_H_

#include "wx/wx.h"
#include "wx/mstream.h"

#define wxMEMORY_IMAGE( name ) _wxConvertMemoryToImage( name, sizeof( name ) )
#define wxMEMORY_IMAGEEX( name, type ) _wxConvertMemoryToImage( name, sizeof( name ), type )
#define wxMEMORY_BITMAP( name ) _wxConvertMemoryToBitmap( name, sizeof( name ) )
#define wxMEMORY_BITMAPEX( name, type ) _wxConvertMemoryToBitmap( name, sizeof( name ), type )

inline wxImage _wxConvertMemoryToImage(const unsigned char* data, int length, long type = wxBITMAP_TYPE_ANY )
{
    wxMemoryInputStream stream( data, length );
    return wxImage( stream, type, -1 );
}

inline wxBitmap _wxConvertMemoryToBitmap(const unsigned char* data, int length, long type = wxBITMAP_TYPE_ANY )
{
    wxMemoryInputStream stream( data, length );
    return wxBitmap( wxImage( stream, type, -1 ), -1 );
}

void initResource(void);

extern wxBitmap appicon;

static const unsigned char appicon_data[] = {
0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00,
...........................
...........................
...........................
0xB9, 0x69, 0x5A, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4E,
0x44, 0xAE, 0x42, 0x60, 0x82
};


resourсes.cpp
#include "resources.hpp"

wxBitmap appicon;
wxBitmap test_icon_37_disable;
wxBitmap test_icon_37_enable;

void initResource(void)
{
       appicon = wxMEMORY_BITMAPEX(appicon_data, wxBITMAP_TYPE_PNG);
       test_icon_37_disable = wxMEMORY_BITMAPEX(test_icon_37_disable_data, wxBITMAP_TYPE_PNG);
       test_icon_37_enable = wxMEMORY_BITMAPEX(test_icon_37_enable_data, wxBITMAP_TYPE_PNG);
}


wxInclude в них автоматом заносит все PNG картинки которые находит в папке...
после чего в проге можно подключить
#include "resources.hpp"

и писать сразу что-нибудь вроде
tool = GetToolBar()->AddTool(5, _T("Tool"), test_icon_37_enable, test_icon_37_disable, wxITEM_NORMAL, _T("Выбор полигонов"), _T("Выделение полигонов на карте"));
т.е. все картинки автоматом видны в исходниках как wxBitmap по имени файл, только без png

Проблема заключается в том, что я хочу получить wxIcon для иконки окна, но для этого мне нужно либо колдовать с моим wxInclude.exe, либо сконвертировать wxBitmap в wxIcon как-нибудь.
Гуглил по этому вопросу довольно много, но мало что попалось.

вобщем как правильно установить иконку окну имея wxBitmap?
Спасибо!

Сообщение отредактировал Litkevich Yuriy - 23.11.2008, 15:18
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 15.1.2025, 10:38