2

フレームの左上隅に表示されるデフォルトのアイコンを変更したいと思います。SetIcon(wxIcon(wxT("icon.xpm")));ここで提案されているように、xpm、ico、bmpなどの多くのアプローチを試しました。
16x16、24x24、32x32のさまざまなアイコンサイズを試しました。また、resource.rcファイル、resource.hファイル、およびフレームコンストラクターに
追加してみました。 ところで、VisualStudio2010でwxwidgets2.8を使用しています。MYICON1 ICON "Logo.ico"#define MYICON1 101SetIcon(wxIcon(MYICON1));

編集:

また、resource.rcファイル、 resource.hファイル、およびフレームコンストラクターに追加MYICON1 ICON "Logo.ico"してみました。#define MYICON1 101SetIcon(wxIcon(MYICON1));

このアプローチでは、wxIcon(int)コンストラクターでエラーが発生します。

1> xsframe.cpp(17):エラーC2248:'wxString :: wxString':クラス'wxString'で宣言されたプライベートメンバーにアクセスできません
1>C:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ VC \ include \ wx /string.h(682):'wxString ::wxString'の宣言を参照
1>C:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ VC \ include \ wx / string.h(659):'の宣言を参照wxString '

PS、xsframeは私のメインフレームです。そのアイコンを変更しようとしています。

4

5 に答える 5

2

ここからVaclavの答えを引用しています:

メイン フレームのアイコンは wxFrame::SetIcon で設定できます。アプリケーション アイコンは、新しいアイコン リソースを .rc ファイルに追加することで変更できます。

appicon ICON "myapp.ico"
#include "wx/msw/wx.rc"

このアイコンは .rc ファイルの最初のアイコンである必要があり、アイコンをアルファベット順に並べ替える場合は最初のアイコンでなければならないことに注意してください。これは、MS の開発者がアプリのアイコンを決定する方法を決定できなかったためです。Windows 9x では .rc ファイルの最初のアイコンであり、NT ではアルファベット順で最初のアイコンです (またはその逆)。

ほとんどの人は通常、これを見逃しています。問題が解決することを願っています。

于 2013-03-04T14:46:27.233 に答える
1

数値識別子ではなく、アイコンの文字列名を使用します。例として wxWidgets サンプルを見てください。

于 2013-03-03T21:58:52.183 に答える
1

あなたが書いた:resource.rcファイルのMYICON1 ICON "Logo.ico"、およびSetIcon(wxIcon(MYICON1)); フレームコンストラクターに

それが私が使用するアプローチです。

実行する必要がある追加の手順があります。resource.h ファイルで、次のように MYICON1 を定義する必要があります。

#define MYICON1  101

アイコン ファイルに必要な解像度がすべて含まれていることを確認する必要があります。

アプリケーション アイコンがリソース ファイル内の最初のアイコンであるとよいでしょう。

wxWidgets v2.9.4 にアップグレードすることをお勧めします。多くの機能が改善されています。

于 2013-03-03T18:43:52.097 に答える