2016-04-01 14 views
-1

私はopenFrameworksでアプリケーションを開発中です。私が知る限り、あなたはopenFrameworksからopenGLウィンドウを開くことしかできません。何とかこのウィンドウはicon.icoを使用しません。これは、コンソールウィンドウ上で.exeファイルに表示されます。私のカスタムアイコンがopenglに表示されません

私が試した物事のカップルがあります:

  1. をコンソールウィンドウが正しくアイコンを見せていたが。メインアイコンとしてicon.rcに設定されています。コンソールウィンドウが最初に開かれ、アイコンが割り当てられ、もう一方のウィンドウが開くとアイコンが割り当てられなくなったと思います。だから私はコンソールウィンドウを取り除こうとしました(とにかくリリースには必要ないでしょう)そして、私はコンソールからウィンドウにサブシステムを変更しました。そして、main()をWINAPI WinMain(....など)に変更しましたが、まだアイコンの問題が解決しません。
  2. はresource.hとicon.rcのいくつかのものを変更しようとしましたが、変更することが多くのと何も動作するように見えた。
  3. はopenFrameworksからOpenGLのウィンドウの設定で機能を検索しようとしましたが、あなたが唯一の画面サイズや他のいくつかの基本的なものを変更することができます。

任意のアイデアを、この画面がでない理由アイコンを表示していますか?

ありがとうございます。

enter image description here

+1

ウィンドウアイコンがエクスプローラに表示されるアプリケーションアイコンとは無関係です。 OpenGLとは無関係です。 –

+1

'WinMain'関数または' WM_CREATE'スイッチを表示してください。クラス登録がどこかにあるはずです。それは 'WNDCLASSEX :: hIcon'を設定するところです。それがアクセスできない場合は、 'HWND'ウィンドウハンドルを見つけて' WM_SETICON'メッセージを送信してください –

+0

このmini-markdownのコードはきれいに見えないので、私はそれを修正しました。 ) –

答えて

1

このように、私は感謝のようにそれを修正しました:大佐のサーティー2とバーマック・シェミーラニ!代わりにofGetWin32Window()を使用してのopenFrameworksで作業していない場合は、おそらく同様のGETのウィンドウ関数を使用することができます:)

#include "ofMain.h" 
#include "ofApp.h" 
#include "../resource.h" 

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd) { 

    ofSetupOpenGL(1280, 720,OF_WINDOW); 

    HWND hwnd = ofGetWin32Window(); 
    HICON hMyIcon = LoadIcon(hInstance, MAKEINTRESOURCE(MAIN_ICON)); 
    SendMessage(hwnd, WM_SETICON, ICON_BIG, (LPARAM)hMyIcon); 

    ofRunApp(new ofApp()); 

}