【发布时间】:2014-02-22 17:50:41
【问题描述】:
我正在阅读的“Cross-Platform GUI Programming with wxWidgets”一书中给出了以下代码:
BEGIN_EVENT_TABLE(MyWindow, wxWindow)
EVT_ERASE_BACKGROUND(MyWindow::OnErase)
END_EVENT_TABLE()
void MyWindow::OnErase(wxEraseEvent& event)
{
wxClientDC* clientDC = NULL;
if (!event.GetDC())
clientDC = new wxClientDC(this);
wxDC* dc = clientDC ? clientDC : event.GetDC() ;
wxSize sz = GetClientSize();
wxEffects effects;
effects.TileBitmap(wxRect(0, 0, sz.x, sz.y), *dc, m_bitmap);
if (clientDC)
delete clientDC;
}
这段代码没有显示如何加载位图,所以在谷歌上搜索后我想出了:
wxBitmap m_bitmap;
bool result = m_bitmap.LoadFile("D:\image.png", wxBITMAP_TYPE_PNG);
但这会返回一个布尔结果false,这意味着函数LoadFile 加载文件失败。我也尝试过加载 BMP 文件,但也失败了。
我遇到的另一个问题是 wxEffects 被编译器警告标记为已弃用。
【问题讨论】:
标签: c++ windows bitmap wxwidgets