【发布时间】:2017-11-16 07:06:43
【问题描述】:
我正在使用单个 wxButton:
wxButtonAction::wxButtonAction(wxWindow* parent) : wxButton(parent,wxID_ANY) {
#if defined __WXMSW__
wxIcon ms_icon(wxT("START_ICON"), wxBITMAP_TYPE_ICO_RESOURCE, 16, 16);
wxBitmap button_bmp;
button_bmp.CopyFromIcon(ms_icon);
#else
wxFileName icon_path(DATA_DIR, wxT("start.ico"));
wxBitmap button_bmp(icon_path.GetFullPath(), wxBITMAP_TYPE_ICO);
#endif
SetLabel(_("&Start"));
SetBitmap(button_bmp);
}
位图按钮按预期显示。当用户单击该按钮时,此方法可以帮助我更改位图和标签:
void wxButtonAction::updateOnAction(bool isRunning) {
#if defined __WXMSW__
wxIcon ms_icon((isRunning) ? wxT("STOP_ICON") : wxT("START_ICON"), wxBITMAP_TYPE_ICO_RESOURCE, 16, 16);
wxBitmap button_bmp;
button_bmp.CopyFromIcon(ms_icon);
#else
wxFileName icon_path(DATA_DIR, (!isRunning) ? wxT("stop.ico") : wxT("start.ico"));
wxBitmap button_bmp(icon_path.GetFullPath(), wxBITMAP_TYPE_ICO);
#endif
SetLabel((!isRunning) ? _("&Stop") : _("&Start"));
SetBitmap(button_bmp);
}
现在是资源文件:
AAPP_ICON ICON DISCARDABLE "../data/app.ico"
ABOUT_ICON ICON "../data/about.ico"
CLOSE_ICON ICON "../data/close.ico"
START_ICON ICON "../data/start.ico"
STOP_ICON ICON "../data/stop.ico"
1 24 "../data/manifest.xml"
当用户切换单击按钮时,标签会正确更改,但图标不会始终位于“开始”位图中。我可以确认所有图标都存在于同一个文件夹中
【问题讨论】:
标签: wxwidgets