Re[3]: Изменение текста сообщения чужого окна.
От: Фил Россия  
Дата: 21.05.03 17:58
Оценка:
Здравствуйте, BlackHeretic, Вы писали:

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


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


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


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


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


BH>
BH>HWND hMsgBox;
BH>



BH>Тогда


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

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


BH>Ну и собсно тут у тебя есть массив всех деток.

BH>Далее пробегаешь по массиву

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

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


BH>Ну в обчем если где есть недочет — не серчай — я это не проверял. Но работать по идее должно. Удачи

Спасибо огромное за инфу! Очень признателен! Завтра буду эксперементировать!
Фил
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.