#visual-c #mfc #taskdialog
#visual-c #mfc #taskdialog
Вопрос:
В моей STRINGTABLE у меня есть следующее:
В моем коде, который я использую TaskDialogIndirect
, я могу навести курсор на AFX_IDS_APP_TITLE
:
Я это очень понимаю… если ресурс не может быть найден, по умолчанию используется имя исполняемого файла. На данный момент это то, что я получаю:
Тем не менее, когда я использую CTaskDialog
конструктор, я получаю правильный заголовок:
Поскольку TaskDialogIndirect
я использую:
sConfig.hInstance = AfxGetInstanceHandle();
Я также пытался:
sConfig.hInstance = AfxGetResourceHandle();
Почему это происходит?
Ответ №1:
Когда вы смотрите на определение HINSTANCE
в TASKDIALOGCONFIG
нем говорится:
Дескриптор модуля, который содержит ресурс значка, идентифицированный членами pszMainIcon или pszFooterIcon, и строковые ресурсы, идентифицированные членами pszWindowTitle, pszMainInstruction, pszContent, pszVerificationText, pszExpandedInformation, pszExpandedControlText, pszCollapsedControlText или pszFooter.
Ошибка заключалась в том, что в нем был указан pszWindowTitle! Пока я загружал AFX_IDS_APP_TITLE
в a CString
, я не назначал его в структуре. Мне нужно было:
sConfig.pszWindowTitle = strTitle.GetString();
И теперь все в порядке: