2011-07-27 9 views
1

私はwxWidgets(2.9ブランチ)を使ってプロジェクトを進めています。私はgccとmakefilesを使っています - 私はVisual Studioでこの取引で見つけたほとんどの質問です。wxMSWのウィンドウの左上隅のアイコンを設定します。

問題は、私はIcoFXでアイコンを作成しました。ウィンドウの隅に表示されるはずの16x16アイコンを含むいくつかの異なるサイズのアイコンが含まれています。アイコンはWindows 7のタスクバーに表示されますが、ウィンドウの隅やAlt + Tabメニューには表示されません。

私のリソースファイルは、次のようになります。どんなに私は(、0、文字列を1を試してみました、WX ***)それは何も変更しないアイコンの識別子として入れたものを

#include "wx/msw/wx.rc" 
1 ICON "images/icon-win.ico" 

私は、リソースファイルをCOFF形式にコンパイルするためにwindresを使用しています。このファイルは、最後の実行可能ファイルとリンクされています。

wxFrame :: SetIconも試しましたが、これもうまくいきませんでした。

ウィンドウのアイコンを設定するトリックはありますか?私は、Windows APIに関連するいくつかの方法を見てきましたが、必要がなければ、そこに行くのではないでしょう。私はそれがリソースファイルに置かれたときに自動的に表示されるはずだと思った。

答えて

2

あなたのリソースファイルに次の行を追加します:

frame_icon ICON "images/icon-win.ico" 

は、あなたのフレームコンストラクタ

SetIcon(wxICON(frame_icon)); 
+0

うわー、なぜ識別子が何もしないので、数字を使うのは分かりませんが、これはうまくいきました。ありがとう! – parkovski

+0

C++識別子は文字で始まる必要があります。 – ravenspoint

+0

番号を使用したときにはうまくコンパイルされましたが、何もしませんでした。実際には識別子を使用していません。私はwxヘッダでこれを見つけました: #define wxICON(X)wxIcon(wxT(#X)) IDが1のときに "1"というリソースを探していたとします。 – parkovski

0

リソースファイルにアイコンが表示されていることがわかったので、タスクバーと実行可能アイコンとして表示されます。

frame->SetIcon(wxICON(1)); 
1

に次の行を追加します。あなたは次のことを行う必要があり、フレームのアイコンとして設定するには試してみよう

frame->SetIcon(wxIcon(wxT("icon.ico"), wxBITMAP_TYPE_ICO));

+0

これが何をするのか説明してください。 –

+0

@AaronHall - >リソースファイルを使用せずにwxFrameのウィンドウの左上隅にアイコンを設定できます。 frame_object_name->SetIcon(wxIcon(wxT("contents/myicon.ico"), wxBITMAP_TYPE_ICO)); これは、この質問の別の解決方法です。誰かがリソースファイルを使用したくない場合は、これが解決策の1行です –

+0

私は答えを見直していましたが、時にはワンライナーにフラグが立てられました。私はそれにフラグを立てませんでしたが、あなたの説明が含まれています。 –

関連する問題