Программирование Windows: структура WNDCLASS: член hIcon Проблема - PullRequest
0 голосов
/ 06 сентября 2011

Я создал собственный .ico с VS2010 для игры, которую я делаю с DirectX

Когда я устанавливаю файл .ico в качестве члена hIcon моего wndClass, он будет отображаться на панели задач, но не в строке заголовка.

Я читал другие темы по этому поводу, я искал в Google, msdn: не повезло ... Я попробовал почти все, что мог придумать, но все равно не показывалось.

Странная вещь: когда я переключаю hIcon на значок по умолчанию (например, IDI_ERROR), он будет отображаться как на панели задач, так и в строке заголовка, но не с моим собственным .ico

Кто-нибудь может мне помочь?

Вот мой код:

HICON Icon = LoadIcon( NULL, MAKEINTRESOURCE(ID_ICON_MYTETRIS) );

WNDCLASS wndClass;
ZeroMemory(&wndClass,sizeof(wndClass));

wndClass.style = CS_HREDRAW | CS_VREDRAW;
wndClass.lpfnWndProc = WndProc;
wndClass.cbClsExtra = 0;
wndClass.cbWndExtra = 0;
wndClass.hInstance = hInstance;
wndClass.hCursor = LoadCursor( NULL, IDC_ARROW );
wndClass.hIcon =  Icon;
wndClass.hbrBackground = static_cast<HBRUSH>(GetStockObject(WHITE_BRUSH));
wndClass.lpszMenuName = NULL;
wndClass.lpszClassName = _T("WindowClass0");

if (RegisterClass(&wndClass) == false) {
    return -1;
}

RECT rc = {0,0,300,225};
AdjustWindowRect(&rc, WS_OVERLAPPEDWINDOW, FALSE);
HWND hWnd = CreateWindow(_T("WindowClass0")
            ,_T("2D_DirectX_Tetris")
            ,WS_OVERLAPPED | WS_SYSMENU | WS_MINIMIZEBOX
            ,CW_USEDEFAULT
            ,CW_USEDEFAULT
            ,rc.right - rc.left
            ,rc.bottom - rc.top
            ,NULL
            ,NULL
            ,hInstance
            ,NULL );
if( hWnd == false) {
    return -1;
}

ShowWindow( hWnd, iCmdShow );

1 Ответ

3 голосов
/ 06 сентября 2011

Вы должны указать дескриптор экземпляра при вызове LoadIcon, чтобы он знал, какие ресурсы модуля использовать.Стандартные значки требуют экземпляр NULL, поэтому они работают для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...