WEB开发网
开发学院软件开发Python 细述 wxWindows 阅读

细述 wxWindows

 2008-09-30 13:05:33 来源:WEB开发网   
核心提示: bool MyApp::OnInit(){wxImage::AddHandler( new wxPNGHandler );// more ...}要使用所有现有的图像格式处理程序,只需要调用函数 wxInitAllImageHandlers() 而不是上面显示的 AddHandler()

bool MyApp::OnInit()
{
  wxImage::AddHandler( new wxPNGHandler );
  // more ...
}

要使用所有现有的图像格式处理程序,只需要调用函数 wxInitAllImageHandlers() 而不是上面显示的 AddHandler() 方法。

在其它平台上使用应用程序中的工具栏位图时要特别小心。在 Windows 上,您将看到 Windows 位图格式,但 Linux 位图通常是 pixmaps,在这种情况下,就不能完全避免有条件的编译。让我们看一些样本代码。

#if defined(__WXGTK__) || defined(__WXMOTIF__)
  #include "maggie.xpm"
#endif
// more ...
void MyApp::UseBitmap()
{
  wxBitmap bitmap( wxBITMAP( maggie ));
  // more ...
}

理解了吗?所有效果都是由 wxBITMAP() 宏实现的。对于 Windows 和 OS/2,它将使用应用程序资源中名为 'maggie' 的位图来创建 wxBitmap 对象。对于所有其它平台,它将使用称为 'maggie_xpm' 的 pixmap 来创建 wxBitmap 对象。

当可以使用 wxDC::DrawBitmap() 在设备上下文中绘制位图时,必须为图像操作使用 wxImage 对象,如下所示。

图像操作

wxImage* p_image = new wxImage( bitmap );
// Have some fun
if ( p_image->Ok() )
{
  if ( p_image->GetHeight() > 50 && p_image->GetWidth() > 50 )
  {
    unsigned char red  = p_image->GetRed( 50, 50 );
    unsigned char green = p_image->GetGreen( 50, 50 );
    unsigned char blue = p_image->GetBlue( 50, 50 );
    // Secure but might be slow
    p_image->SetRGB( 50, 50, red, green, blue );
    // If you want fast action use a pointer...
    unsigned char* data = p_image->GetData();
    // Manipulate the data...
  }
}

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:wxWindows

编辑录入:爽爽 [复制链接] [打 印]
    赞助商链接