Извините за этот (возможно, очень немой) вопрос, но я довольно смущен: я пытаюсь масштабировать растровое изображение в wxWidgets v3.0.2, используя SetScaleMode()
as described in the documentation. Я использовал оператор include, хотя мой компилятор (GCC после C++ 11) говорит, что 'class wxStaticBitmap' has no member named 'SetScaleMode'|
и 'Scale_AspectFit' was not declared in this scope|
. Может я проглядел что-то, ниже мой (сокращенный) код:wxStaticBitmap не имеет имени с именем «SetScaleMode()»
#include <wx/msgdlg.h>
#include <wx/thread.h>
#include <wx/event.h>
#include <wx/statbmp.h>
//(*InternalHeaders(WindowsDgpsGUIFrame)
#include <wx/bitmap.h>
#include <wx/icon.h>
#include <wx/intl.h>
#include <wx/image.h>
#include <wx/string.h>
//*)
//wxTextFile file;
//helper functions
enum wxbuildinfoformat {
short_f, long_f };
wxString wxbuildinfo(wxbuildinfoformat format)
{
wxString wxbuild(wxVERSION_STRING);
if (format == long_f)
{
#if defined(__WXMSW__)
wxbuild << _T("-Windows");
#elif defined(__UNIX__)
wxbuild << _T("-Linux");
#endif
#if wxUSE_UNICODE
wxbuild << _T("-Unicode build");
#else
wxbuild << _T("-ANSI build");
#endif // wxUSE_UNICODE
}
return wxbuild;
}
//(*IdInit(WindowsDgpsGUIFrame)
const long WindowsDgpsGUIFrame::ID_STATICBITMAP1 = wxNewId();
const long WindowsDgpsGUIFrame::ID_PANEL1 = wxNewId();
BEGIN_EVENT_TABLE(WindowsDgpsGUIFrame,wxFrame)
//(*EventTable(WindowsDgpsGUIFrame)
//*)
END_EVENT_TABLE()
WindowsDgpsGUIFrame::WindowsDgpsGUIFrame(wxWindow* parent,wxWindowID id)
{
//(*Initialize(WindowsDgpsGUIFrame)
wxBoxSizer* pBitmapBoxSizer;
wxBoxSizer* pPanelBoxSizer;
Create(parent, wxID_ANY, _("SensoRun"), wxDefaultPosition, wxDefaultSize, wxDEFAULT_FRAME_STYLE|wxMAXIMIZE_BOX, _T("wxID_ANY"));
SetForegroundColour(wxColour(187,0,0));
SetBackgroundColour(wxColour(128,128,128));
{
wxIcon FrameIcon;
FrameIcon.CopyFromBitmap(wxBitmap(wxImage(_T(".\\resources\\sd.ico"))));
SetIcon(FrameIcon);
}
pPanel = new wxPanel(this, ID_PANEL1, wxPoint(280,352), wxDefaultSize, wxTAB_TRAVERSAL, _T("ID_PANEL1"));
pPanelBoxSizer = new wxBoxSizer(wxVERTICAL);
pBitmapBoxSizer = new wxBoxSizer(wxVERTICAL);
StaticDirectionBitmap = new wxStaticBitmap(pPanel, ID_STATICBITMAP1, wxBitmap(wxImage(_T(".\\resources\\kein_pfeil.png"))), wxDefaultPosition, wxDefaultSize, wxSIMPLE_BORDER, _T("ID_STATICBITMAP1"));
pBitmapBoxSizer->Add(StaticDirectionBitmap, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
pPanelBoxSizer->Add(pBitmapBoxSizer, 1, wxALL|wxEXPAND|wxFIXED_MINSIZE|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
StaticDirectionBitmap->SetScaleMode(Scale_AspectFit);
}
(я надеюсь, что я не удалял что-то важное в этом фрагменте, я хотел, чтобы сделать его легче читать)
Эту мысль я полностью игнорировал. Спасибо за это. – Lehue