Здравствуйте, 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>Ну в обчем если где есть недочет — не серчай — я это не проверял. Но работать по идее должно. Удачи
Спасибо огромное за инфу! Очень признателен! Завтра буду эксперементировать!