У меня возникла небольшая проблема с отображением значка панели задач для диалогового окна, которое создает мое приложение.Основным приложением является Windows-приложение, основанное на системной панели.
Вот код, который я использую для создания диалогового окна:
g_pMainWnd->m_DlgAuth= new CDlg_Auth();
g_pMainWnd->m_DlgAuth->SetTitle(_T("Authentication"));
g_pMainWnd->m_DlgAuth->SetSize(420,420);
g_pMainWnd->m_DlgAuth->Create(IDD_DLG_AUTH,AfxGetMainWnd());
g_pMainWnd->m_DlgAuth->ShowWindow(SW_SHOW);
g_pMainWnd->m_DlgAuth->SetForegroundWindow();
g_pMainWnd - это глобальный указатель на основной класс, поскольку создание диалога производится в обратном вызове издочерний поток.
Значок панели задач создается в методе OnInitDialog MFC, как показано здесь:
m_hIcon = (HICON)LoadImage(AfxGetResourceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME),IMAGE_ICON, 0, 0, 0);
int cxIcon = GetSystemMetrics(SM_CXSMICON);
int cyIcon = GetSystemMetrics(SM_CYSMICON);
m_hIconSmall = (HICON)LoadImage(AfxGetResourceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME),IMAGE_ICON
,cxIcon,cyIcon, 0);
SetIcon(m_hIconSmall, FALSE); // Set small icon
SetIcon(m_hIcon, TRUE); // Set small icon
Маленький значок отлично загружается, проблема с большим значком, он не загружается вообщедескриптор установлен, и все выглядит нормально, но когда отображается кнопка на панели задач, он показывает значок приложения консоли Windows по умолчанию.
Я занимаюсь этим уже неделю, и, похоже, ничего не работает.Я пробовал другие значки 32x32, пытался загрузить диалог из другого потока.Я попытался сделать ответный звонок отправить сообщение в основной поток, чтобы создать диалог.Все элементы управления в диалоге работают нормально.Он получает все необходимые сообщения, но не рисует значок.
Буду признателен за любую возможную помощь.Спасибо