2016-04-01 5 views
-1

Я работаю над приложением с openFrameworks. Насколько я знаю, вы можете открыть окно openGL из openFrameworks, и так или иначе это окно не использует значок icon.ico, который я хочу. Он отображается в файле .exe, хотя и в окне консоли.Моя пользовательская иконка не отображается в opengl

Существует несколько вещей, которые я пробовал:

  1. Окно консоли правильно показывая значок. Это значок icon.rc в качестве основного значка. Я подумал, что, возможно, сначала открывается консольное окно, поэтому значок назначается, а когда открывается другое окно, он больше не назначает значок. Поэтому я попытался избавиться от окна консоли (мне все равно не понадобится его выпуск). И я изменил подсистему с консоли на окна. И изменил main() на WINAPI WinMain (.... и т. Д. Но это не решает проблему с моими значками, пока оно пока не отображается.
  2. попытался изменить некоторые вещи в resource.h и icon.rc, но не было многое изменить, и ничего, казалось, работали.
  3. попытался найти функции в настройках окна OPENGL из openFrameworks, но вы можете изменить только размер экрана и некоторые другие базовые вещи.

Любая идея, почему этот экран не показывая мою иконку

Заранее благодарен

enter image description here

+1

Значок окно не имеет никакого отношения к иконке приложения отображается в проводнике. Это также не связано с OpenGL. –

+1

Показать функцию 'WinMain' и/или' WM_CREATE'. Там должна быть регистрация классов, вот где вы устанавливаете 'WNDCLASSEX :: hIcon'. Если это не доступно, найдите дескриптор окна «HWND» и отправьте сообщение «WM_SETICON» –

+0

Спасибо, ребята, мне удалось его исправить, я отправлю еще один ответ, как я это сделал, потому что код в этой мини-уценке выглядит не очень красиво:) –

ответ

1

Поэтому я исправил это так: Полковник Тридцать два и Бармак Шеримани !! Вместо того, чтобы использовать ofGetWin32Window() Вы можете, вероятно, использовать подобную функцию окна получить, если не работать с openFrameworks :)

#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()); 

} 
Смежные вопросы