wxWidgets: отобразить wxBitmap на wxFrame
От: Аноним  
Дата: 02.03.08 12:26
Оценка:
Добрый день.

В основном пишу консольные программки, но возникла задача написать простенькую программку, которая бы выводила RGB битмап в окно. Раньше писал некоторые "графические" программки под винду, и как вывести изображение с помощью winapi в курсе. Сейчас же работаю в линуксах, и т.к. от гуи требуется только вывод одной картинки (хотя, было бы неплохо реализовать анимацию; но тоже в рамках простой смены кадров, которые выводились бы в определенную область окна) разбираться в графических библиотеках (wxWidgets, gtk, qt) лениво. Поэтому прошу знатоков привести пример простой программы создающей окно и отобразить на нем битмап. Либо ткнуть на уже готовый пример. Быстро пробежавшись по гуглу, осилил только создание главного окна используя wxWidgets (по gtk и qt еще не искал; исключительно субъективно — не хочется их трогать; хотя, если с их помощью можно решить задачу просто, то тоже пойдет).


#include <wx/wx.h>

using namespace std;

class MWND : public wxFrame
{
public:
    MWND(const wxString& title);
};

MWND::MWND(const wxString& title)
       : wxFrame(NULL, wxID_ANY, title, wxDefaultPosition, wxSize(800, 600))
{
  Centre();
}

class MyApp : public wxApp
{
  public:
    virtual bool OnInit();
};

IMPLEMENT_APP(MyApp)

bool MyApp::OnInit()
{
    MWND *mwnd = new MWND(wxT("TITLE"));
//  подозреваю, где-то здесь нужно что-то типа: mwnd->AddControl(new wxBitmap("tmp.bmp"))
    mwnd->Show(true);

    return true;
}


Все — дальше затык. Почитал (поискал по форуму) про wxBitmap — но как его "вставить" в окно так и не разобрался (в основном, все примеры на форуме http://wxforum.shadonet.com уж слишком монстрообразные и без разучивания апи мне не поддались

Еще хочу добавить: битмап генерируется непосредственно в памяти (т.е. на диск *.bmp не ложится), поэтому хотелось бы непосредственно выводить из: char *rgb_buf; //просто область памяти по три байта (rgb) на на пиксель. Но на данный момент это непринципиально...

Заранее благодарен
Сергей



03.03.08 13:28: Перенесено модератором из 'C/C++' — Odi$$ey
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.