Как Windows MessageBox с сообщением & quot; Участник не найден. & Quot; генерируется? Можно ли это перехватить?

У меня есть приложение Windows на основе MFC с графическим интерфейсом, оно написано на C ++ и содержит много COM-объектов; давайте назовем это «HelloWorld».

Пользователь отправил мне сообщение об ошибке: иногда, в ответ на конкретный
пользовательское действие, появляется MessageBox (на следующем рисунке я удалил заголовок строки заголовка).

введите описание изображения здесь

1) заголовок строки заголовка MessageBox HelloWorld и, глядя на эту строку в коде, мне кажется, что это строка ресурса
идентифицировано AFX_IDS_APP_TITLE.rc исходный файл
приложение);
Ниже приведен соответствующий раздел .rc исходный файл:

STRINGTABLE
BEGIN
AFX_IDS_APP_TITLE       "HelloWorld"AFX_IDS_IDLEMESSAGE     "..."AFX_IDS_HELPMODEMESSAGE "..."END

2) На Windows 7 с английским языком сообщение MessageBox
является «Член не найден.»

3) В Windows 7 с разными языками сообщение переводится на
правильный язык.

Я думаю, что проблема описана здесь
HOWTO: Устранение неполадок «Член не найден» 0x80020003 Ошибка и связано с
DISP_E_MEMBERNOTFOUND ошибка; Я на самом деле решил проблему на
Пользовательский сайт.

Но есть другая проблема, которая до сих пор не решена, и это
проблема пользовательского опыта: пользователь, отправивший мне отчет об ошибке, не
программист и не знает, что означает «член» в выражении
такие как «функция-член», и поэтому пользователь был слегка обижен сообщением из-за
много значений слова «член» (по крайней мере, на английском языке и в
Итальянский).

Я проверил исходный код приложения, и мне кажется, что
MessageBox не генерируется приложением; теперь я хотел бы
знать, как генерируется этот MessageBox для его перехвата и
отобразить другой MessageBox: это можно сделать?

0

Решение

Я не знаю о конкретной ошибке, но для подавления сообщения, это вызов Windows.

BOOL SetThreadErrorMode(
_In_   DWORD dwNewMode,
_Out_  LPDWORD lpOldMode
);

До Windows 7 используйте SetErrorMode.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]