Уважаемые, кто знает, помогите!! Ситуация следующая. Есть БО_О_ОЛЬшущая программа!!! соответственно, там есть и диалоги разные и их много... дык вот. мне нужно найти в ней ошибку.... клиентосы обнаружили, что там в случается такой казус - диалоговое окно не реагирует на кнопку "Отмена"...то есть она нажимается, но ответной реакци - ноль. это бывает редко, но бывает соответственно задача найти, из-за чего такое возникает. Сначала просто попробовали тысячу раз делать что-то подобное, что делают клиенты и зафиксировать моменть, когда такое получается... не смогли.... то есть сделали вывод, что это ошибкане постоянная, а плавающая. Решили попробовать сделать следующее, в том диалоге на ктоторый жалуются клиентосы, сделать реакцию на нажатие клавиши Alt+X в виде записи в журнал (лог-файл) имен диалоговых окон и классу, к которому он принадлежит. Сказали мне ребята. и смылись на праздник... а меня работать оставили. типа нужно за сегодня доделать. а я как человек, еще не так давно работающий с Си++ никак не могу сообразить, как же сделать так, чтобы при нажатии alt+x программа выдала названия всех открытых диалогов..... что имется на данный момент... Код (Text): IMPL_HANDLE_EVENT(BillDialog) { .... if(TVCOMMAND) switch(TVCMD) { case cmClusterClk: ... case cmCBSelected: ... switch(TVCHR) { case kbAltX: msg_buf.Cat(NameDialog).CatDiv(';', 1).Cat(ClassDialog); PPLogMessage(PPFILNAM_DEBUG_LOG, msg_buf, 0, 0); break; } ..... } пояснения: 1) #define IMPL_HANDLE_EVENT(cls) void cls::handleEvent(TEvent & event) 2) #define kbAltX 0x2d00 3) int PPLogMessage(const char * pFileName, const char * pStr, long options, int maxFileSize = 8192); 4) Код (Text): SString & FASTCALL SString::Cat(const char * pS) { const size_t add_len = pS ? strlen(pS) : 0; if(add_len) { const size_t new_len = (L ? L : 1) + add_len; if(Alloc(new_len)) { memcpy(P_Buf+Len(), pS, add_len+1); L = new_len; } } return *this; } SString & SLAPI SString::CatDiv(int c, int addSpaces, int ifNotEmpty) { if(!ifNotEmpty || Strip().NotEmpty()) { if(addSpaces > 0 && addSpaces != 2) Space(); CatChar(c); if(addSpaces) Space(); } return *this; } вот, поможите!!!! НА ПРАЗДНИК ХОЧУ!!!
А-А-А-А!!! НЕУЖЕЛИ НИКТО ПОМОЧЬ НЕ МОЖЕТ? НУ ХОТЬ НАМЕК ИЛИ ВАРИАНТИК КАКОЙ-НИТЬ, КАК ВОЗМОЖНО ЭТО СДЕЛАТЬ?