C++ 更改静态位图wxWidgets上的图像
我想有一个窗口,在这个窗口中,图片根据无限循环中发生的事情而变化 想象有人在周围走动,当他离开一个给定的轨迹时,程序应该显示一个指向轨迹方向的箭头。因此,我有一个程序,它可以确定用户和轨迹之间的距离,但我不知道如何更新图像 我在wxWidgets中使用code::blocks,并且认为我必须使用C++ 更改静态位图wxWidgets上的图像,c++,image,bitmap,wxwidgets,C++,Image,Bitmap,Wxwidgets,我想有一个窗口,在这个窗口中,图片根据无限循环中发生的事情而变化 想象有人在周围走动,当他离开一个给定的轨迹时,程序应该显示一个指向轨迹方向的箭头。因此,我有一个程序,它可以确定用户和轨迹之间的距离,但我不知道如何更新图像 我在wxWidgets中使用code::blocks,并且认为我必须使用wxStaticBitmap类。(如果有更好的办法,请告诉我。) 我试过: while(true) { updatePosition(); if(userNotOnTrack) {
wxStaticBitmap
类。(如果有更好的办法,请告诉我。)
我试过:
while(true)
{
updatePosition();
if(userNotOnTrack)
{
if(trackRightOfUser)
{
StaticDirectionBitmap->SetBitmap("D:\\WindowsDgps\\WindowsDgpsGraphic\\arrow_right.png");
}
}
}
(请注意,除了StaticDirectionBitmap
部分之外,此代码段大部分是伪代码。)
默认情况下,位图具有“无箭头”图像。这样我就得到了一个错误:error:wxStaticBitmap::SetBitmap(constchar[51])调用没有匹配的函数。
。我从文件中看到,这是行不通的,但我不知道什么可以
如果有人知道如何处理这件事,我很乐意听到。我记得几年前,我在C#中尝试了类似的方法,但由于线程安全性,完全失败了。。。我希望C++中的WxWIDGET不是很难。
SETBITMAP将WxBoMMAP参数取为字符串。因此,呼叫应该类似于:
SetBitmap(wxBitmap( "D:\\WindowsDgps\\WindowsDgpsGraphic\\arrow_right.png", wxBITMAP_TYPE_PNG) );
在进行此调用之前,请确保png处理程序已添加以下调用之一:
wxImage::AddHandler(new wxPNGHandler);
或
最容易做到这一点的地方是在applications OnInit()方法中
如果希望从工作线程更新静态位图,则应引发wxThreadEvent,然后在事件处理程序中调用SetBitmap。此示例显示如何生成和处理这些事件。SetBitmap采用wxBitmap参数,而不是字符串。因此,呼叫应该类似于:
SetBitmap(wxBitmap( "D:\\WindowsDgps\\WindowsDgpsGraphic\\arrow_right.png", wxBITMAP_TYPE_PNG) );
在进行此调用之前,请确保png处理程序已添加以下调用之一:
wxImage::AddHandler(new wxPNGHandler);
或
最容易做到这一点的地方是在applications OnInit()方法中
如果希望从工作线程更新静态位图,则应引发wxThreadEvent,然后在事件处理程序中调用SetBitmap。该示例显示了如何生成和处理这些事件