现在的位置: 首页 > 综合 > 正文

[wxWidgets]_[使用wxRendererNative画的原生图片生成带alpha透明区域的wxBitmap]

2013年01月28日 ⁄ 综合 ⁄ 共 778字 ⁄ 字号 评论关闭

wx生成的原生checkbox图片:

场景:

1.如果要开发自定义的checkBox和radiobutton,原生的控件背景色是无法替换为父控件的背景的,这种情况只能开发自己的自定义radiobutton.如果是自定义的radiobutton,那么少不了radiobutton的图片,这时候最简单的当然是要美工制作再贴图啦,但是也有办法不需要美工制作图片,因为wx的wxRendererNative本来就自带。

好了,看代码吧:

wxRendererNative &render = wxRendererNative::Get();
    const wxSize sizeCheck = render.GetCheckBoxSize(panel_);
    wxBitmap bitmap(sizeCheck.x, sizeCheck.y);
    wxMask *mask = new wxMask(bitmap, *wxBLACK);
    bitmap.SetMask(mask);
    wxImage image = bitmap.ConvertToImage();
    image.InitAlpha();
    wxBitmap bt(image);

    wxMemoryDC mDc;
    mDc.SelectObject(bt);
    render.DrawCheckBox(panel_, mDc, wxRect(0, 0, sizeCheck.x, sizeCheck.y));
    //render.DrawRadioBitmap(panel_, mDc, wxRect(0, 0, sizeCheck.x, sizeCheck.y));

    mDc.SelectObject(wxNullBitmap);
    bt.SaveFile(wxT("E:/bt.png"),wxBITMAP_TYPE_PNG);

【上篇】
【下篇】

抱歉!评论已关闭.