| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > Название окон |
| Автор: Santilka85 18.6.2007, 10:08 |
| Подскажите, пожалуйста, как написать цикл на С++, который перебирает ВСЕ окна и внутри цикла записывает заголовок окна в переменную? если можно, приведите, пожалуйста пример.. я это представляю примерно так: for (.....) { ...//искать окно ...//ивлечь заголовок txt=[заголовок окна]; ShowMessage ("Найдено окно --->"+txt); } ShowMessage ("Больше окон нет."); |
| Автор: SenkraD 18.6.2007, 10:57 | ||
Вот пример по изменению заголовков всех окон, бередаль думаю сам сможеш
|
| Автор: Santilka85 18.6.2007, 11:14 |
| не получилось, можно по подробней, что где описать надо? ерор: [C++ Error] Unit1.cpp(230): E2034 Cannot convert 'int (__stdcall *)(void *,long)' to 'int (__stdcall *)()' [C++ Error] Unit1.cpp(230): E2342 Type mismatch in parameter 'lpEnumFunc' (wanted 'int (__stdcall *)()', got 'int (__stdcall *)(void *,long)') [C++ Error] Unit1.cpp(251): E2034 Cannot convert 'int (__stdcall * (_closure )(void *,long))(void *,long)' to 'int (__stdcall *)()' [C++ Error] Unit1.cpp(251): E2342 Type mismatch in parameter 'lpEnumFunc' (wanted 'int (__stdcall *)()', got 'int (__stdcall * (_closure )(void *,long))(void *,long)') |
| Автор: Rodman 18.6.2007, 11:37 |
| окон твоего приложения или всех открытых на машине??? |
| Автор: Santilka85 18.6.2007, 11:43 |
| Мне нужно чтоб заголовки ВСЕХ ОТКРЫТЫХ на машине "пробежались" через одну переменную в цикле. |
| Автор: SenkraD 18.6.2007, 11:44 | ||
Вот тебе твоя версия. Кладён на форму TMemo (Memo1), TButton(Button1) и пишеш так, при чём в таком же порядке
Тебе это нужно было? |
| Автор: Santilka85 18.6.2007, 12:02 |
| Ну примерно да, только я не понял ГДЕ текущий заголовок извлекается, я только понял где он задаётся.. Где можно вставить ShowMessage() чтобы в этой месаге увидеть у КАКОГО ОКНА сейчас изменится заголовок? |
| Автор: SenkraD 18.6.2007, 12:16 | ||
| Santilka85, ну строку SendMessage(hwnd, WM_SETTEXT, 0,LPARAM(LPCTSTR("I See You"))) закоменьть. Эт я немного лоханулся ))) А текущий заголовоек получается вот так:
|
| Автор: Santilka85 18.6.2007, 12:27 |
| Огромное Человеческое спасибо!!! кажись заработало |
| Автор: Santilka85 18.6.2007, 12:53 |
| А вот маленький вопросик, почему в ListBox записывается много пустых строк?? (я вместо Memo ListBox сделал)?? |
| Автор: SenkraD 18.6.2007, 13:18 |
| Santilka85, потому что у окна может не быть заголовка или заговово равен пустой строке!!! |
| Автор: Klin 18.6.2007, 14:00 | ||
Santilka85, если важен интерфейс сделайте элементарную проверку перед добавлением нового элемента.
|
| Автор: Santilka85 21.6.2007, 10:51 |
| Пробовал, не помогает, всё равно много пустых строк, надо как-то избавиться от них, а то смысла нету- пол-экрана ПУСТО, подскажите, плиз |
| Автор: Klin 21.6.2007, 13:07 |
| Santilka85, попробуйте проверять на пробел или если их много (или всегда по-разному), то уничтожайте стандартной функцией пробелы, а затем уж проверйте. |
| Автор: Santilka85 21.6.2007, 13:18 |
| Klin, LastDelimiter пробовал.... не помогает, как быть?? |
| Автор: Klin 21.6.2007, 15:18 |
А это причем? Я имел ввиду функцию TrimRight. |