Re[2]: Изменение текста сообщения чужого окна.
От: BlackHeretic Израиль  
Дата: 20.05.03 13:18
Оценка:
Здравствуйте, BlackHeretic, Вы писали:

BH>Здравствуйте, Фил, Вы писали:


Фил>>Привет всем! Тут передо мной встала задача изменить текст сообщения в MessageBox, выдаавемой какой-нить прогой. Я отловил дескриптор окна и теперь могу поменять заголовок, а вот как нгасчет текста сообщения? Заранее благодарен.


BH>Проэнумеруй детские окна, там будет 2 статика. Один картинка, второй текст. Вот тот что текст и меняй на здоровье


Насколько я понял дескриптор месадж бокса у тебя есть, обзовем его

HWND hMsgBox;



Тогда

BOOL CALLBACK EnumChildProc(HWND hwnd, LPARAM lParam)
{
    CHWNDArray* pArr = (CHWNDArray*)lParam;
    pArr->Add(hwnd);
    return TRUE;
}

typedef CArray<HWND,HWND> CHWNDArray;
CHWNDArray hwndArr;
EnumChildWindows(hMsgBox, EnumProc, (LPARAM)&hwndArr);


Ну и собсно тут у тебя есть массив всех деток.
Далее пробегаешь по массиву

TCHAR className[1024];
int index = -1;
for(int i=0; i<hwndArr.GetSize(); i++)
{
  if(GetClassName(hwndArr[i], className, 1024))
  {
    if(_tcsicmp(className, _T("STATIC")==0)
    {
      if(!(GetWindowLong(hwndArr[i], GWL_STYLE) & SS_ICON))
      {
        index = i;
        break;
      }
    }
  }
}

if(index>=0)
{
  SetWindowText(hwndArr[index], _T("Yesss!!!!"));
}


Ну в обчем если где есть недочет — не серчай — я это не проверял. Но работать по идее должно. Удачи
ICQ 156156278
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.