Я пытаюсь создать статическое растровое изображение, но конструктор принимает только изображения wxGDII. Вот код из FormBuilder:
wxStaticBitmap* tmtBitmap = new wxStaticBitmap( this, wxID_ANY, wxBitmap( wxT("directory"), wxBITMAP_TYPE_ANY ), wxDefaultPosition, wxDefaultSize, 0 );
Есть ли способ преобразовать wxBitmap в wxGDIImage? Или создать wxGDIImage с учетом каталога?
Может, есть другой способ сделать это.
Спасибо.
1 ответ
wxStaticBitmap
принимает wxBitmap
в своем конструкторе ( wx API-Doc < / a>)
Сообщение об ошибке, выдаваемое компилятором, может вводить в заблуждение. Я предполагаю, что вы видите что-то вроде этого:
include/wx/msw/statbmp.h:80: note: candidates are: wxStaticBitmap::wxStaticBitmap(const wxStaticBitmap&)
include/wx/msw/statbmp.h:34: note: wxStaticBitmap::wxStaticBitmap(wxWindow*, wxWindowID, const wxGDIImage&, const wxPoint&, const wxSize&, long int, const wxString&)
include/wx/msw/statbmp.h:25: note: wxStaticBitmap::wxStaticBitmap()
Поскольку это единственное, что зависит от контекста, похоже, проблема с указателем this
, либо вы не находитесь "внутри" wxWindow
или ваш компилятор не может определить статический тип. Вы можете использовать что-то вроде этого для проверки: (не делайте этого в продуктивном коде)
wxStaticBitmap* tmtBitmap = new wxStaticBitmap( (wxWindow*)NULL, wxID_ANY, wxBitmap( wxT("directory"), wxBITMAP_TYPE_ANY ), wxDefaultPosition, wxDefaultSize, 0 );
Или
wxStaticBitmap* tmtBitmap = new wxStaticBitmap( (wxWindow*)this, wxID_ANY, wxBitmap( wxT("directory"), wxBITMAP_TYPE_ANY ), wxDefaultPosition, wxDefaultSize, 0 );
wxStaticBitmap
с родителем NULL
, дочернее окно должно иметь действительного родителя. И, конечно же, не приводите неокно к wxWindow
, это просто приведет к сбою.
wxWindow *
в целом не очень хорошая идея. Это было предназначено только для проверки вывода компилятора
Похожие вопросы
Новые вопросы
c++
C++ — это язык программирования общего назначения. Изначально он разрабатывался как расширение C и имел аналогичный синтаксис, но теперь это совершенно другой язык. Используйте этот тег для вопросов о коде, который будет скомпилирован с помощью компилятора C++. Используйте тег версии для вопросов, связанных с конкретной стандартной версией [C++11], [C++14], [C++17], [C++20] или [C++23]. и т.д.
wxBitmap
ЯВЛЯЕТСЯwxGDIImage
(который является внутренним классом в wxWidgets, о котором вам действительно не нужно заботиться), поэтому, какая бы проблема у вас не была, всегда включайте (сокращенно, если необходимо) сообщение об ошибке при запросе об ошибках компиляции.