这个问题曾经困惑了我很久,因为wxWidgets的资料在网上并不是很多,所幸在工期的压力下还是捣鼓出来了。向窗体上贴图,一般图片格式采用的是JPG或者是BMP。在这里做一个申明。
//添加jpg和bmp文件支持
wxImage::AddHandler( new wxJPEGHandler);
wxImage::AddHandler( new wxBMPHandler);
wxImage::AddHandler( new wxJPEGHandler);
wxImage::AddHandler( new wxBMPHandler);
贴图函数.
//在指定位置进行贴图
//pt_x为x坐标,pt_y为y坐标,strImagePath为要加载图片的相对路径
void iringFrame::DrawPicture()
{
wxBitmap bitmap;
bitmap.LoadFile(strImagePath,wxBITMAP_TYPE_JPEG);
//判断图片是否加载成功
if (bitmap.Ok())
{
//pt_x为x坐标,pt_y为y坐标,strImagePath为要加载图片的相对路径
void iringFrame::DrawPicture()
{
wxBitmap bitmap;
bitmap.LoadFile(strImagePath,wxBITMAP_TYPE_JPEG);
//判断图片是否加载成功
if (bitmap.Ok())
{
//dc绘图
//dc.DrawBitmap(bitmap,rCallOpenX,rCallOpenY,1);
//m_bitmap7为贴图的区域
m_bitmap7->SetBitmap(bitmap);
}
else
{
//图片加载失败
strImagePath.Printf(wxT( "The picture adds to carry a mistake!!!"));
wxMessageBox(strImagePath,_( "cicatel"));
}
}
m_bitmap7->SetBitmap(bitmap);
}
else
{
//图片加载失败
strImagePath.Printf(wxT( "The picture adds to carry a mistake!!!"));
wxMessageBox(strImagePath,_( "cicatel"));
}
}
另外按需求,对鼠标移动时光标的改变也做了处理,没什么难度,主要是文档资料都是英文,理解起来比较困难,所以权且做一个备忘吧.
//鼠标移动到按钮上时光标的变化
void iringFrame::getMousePoint()
{
void iringFrame::getMousePoint()
{
//默认状态的光标
if (checkKeyArea() == keyNoTouch)
{
wxCursor down_cursor = wxCursor(wxCURSOR_ARROW);
SetStyle(down_cursor);
}
else
{ //处于按钮位置的光标
wxCursor down_cursor = wxCursor(wxCURSOR_HAND);
SetStyle(down_cursor);
}
}
if (checkKeyArea() == keyNoTouch)
{
wxCursor down_cursor = wxCursor(wxCURSOR_ARROW);
SetStyle(down_cursor);
}
else
{ //处于按钮位置的光标
wxCursor down_cursor = wxCursor(wxCURSOR_HAND);
SetStyle(down_cursor);
}
}
本文转自阿汐 51CTO博客,原文链接:http://blog.51cto.com/axiii/90137,如需转载请自行联系原作者