我的自定义图标未显示在opengl中

时间:2016-04-01 16:10:27

标签: c++ windows icons openframeworks

我正在使用openFrameworks开发应用程序。据我所知,你只能从openFrameworks打开一个openGL窗口,不知怎的,这个窗口不使用我想要的icon.ico。它虽然显示在.exe文件上,但在控制台窗口中显示。

我尝试过几件事:

  1. 控制台窗口正确显示图标。它在icon.rc中设置为主图标。我想可能首先打开控制台窗口,然后分配图标,当另一个窗口打开时,它不再分配我的图标。所以我试图摆脱控制台窗口(无论如何我都不需要发布)并且我将子系统从控制台更改为Windows。并将main()更改为WINAPI WinMain(....等等。但这并没有解决我的图标问题,它仍未显示。
  2. 尝试更改resource.h和icon.rc中的一些内容,但没有太多改变,似乎没有任何工作。
  3. 尝试在openFrameworks的openGL窗口设置中搜索功能,但只能更改屏幕大小和其他一些基本内容。
  4. 知道为什么这个屏幕没有显示我的图标?

    提前致谢!

    enter image description here

1 个答案:

答案 0 :(得分:1)

所以我这样修好了,感谢:上校三十二和巴马克谢米拉尼!!而不是使用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());

}