Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Найти окно + заполнить текстбоксы. 
:(
    Опции темы
cra6
Дата 21.1.2008, 02:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 10.12.2007

Репутация: нет
Всего: 2



Уважаемые господа имеется задачка - Есть открытое окно с 10 -12 текст боксами.их надо заполнить инфой из моих текст боксов.В winapi новичок.Так что пожалста ,если не затруднит, обьясните пошагово или дайте примерчик сам разбирусь.Премного благодарен.
PM MAIL   Вверх
dizzy1984
Дата 21.1.2008, 07:14 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 675
Регистрация: 15.2.2007

Репутация: нет
Всего: 25



Для установки текста окна (текст. бокса) - 
Код

BOOL SetWindowText(          HWND hWnd,
    LPCTSTR lpString
);

Соотвественно чтобы узнать hWnd окна
Код

HWND FindWindow(          LPCTSTR lpClassName,
    LPCTSTR lpWindowName
);

узнаем hwnd родительского окна (на котором он расположен)
и затем по веточкам, (по веревке, по канату, по цепочке... год за годом... smile)
Код

HWND GetWindow(          HWND hWnd,
    UINT uCmd
);

Если это диалог, то можно 
Код

HWND GetDlgItem(          HWND hDlg,
    int


Это сообщение отредактировал(а) dizzy1984 - 21.1.2008, 07:15
PM MAIL   Вверх
cra6
Дата 21.1.2008, 10:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 10.12.2007

Репутация: нет
Всего: 2



Спасибо.  smile 
PM MAIL   Вверх
cra6
Дата 4.2.2008, 20:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 10.12.2007

Репутация: нет
Всего: 2



Проблема в следующем.В винсайте видны только 3-4 дочерних окна + ещё 5-6 hidden.Хендл главного я получил.Но внутри главного както хитро открывается диалоговое окно(за пределы главного не выносится) с которым мне необходимо работать.Но достучатся до которого не вижу возможности.То ли это невозможно ,то ли у меня руки кривые ,что более вероятно.Может кто что посоветует...

PM MAIL   Вверх
dizzy1984
Дата 5.2.2008, 06:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 675
Регистрация: 15.2.2007

Репутация: нет
Всего: 25



Ты хочешь сказать что не видишь это диалоговое окно в качестве потомка главного?
Тогда оно само по себе является главным и его надо искать точно так же как и главное окно.
PM MAIL   Вверх
cra6
Дата 5.2.2008, 10:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 10.12.2007

Репутация: нет
Всего: 2



Оно не главное никак.Проверено и в винсайте и функцией FindWindow.
+

hWnd = GetForegroundWindow();
GetWindowText(hWnd,szTitle,40);

 -хендл главного получается взять ,а диалога нет.

Это сообщение отредактировал(а) cra6 - 5.2.2008, 10:30
PM MAIL   Вверх
dizzy1984
Дата 6.2.2008, 08:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 675
Регистрация: 15.2.2007

Репутация: нет
Всего: 25



А если дальше
Код

HWND hwnd = GetWindow(hWnd, GW_CHILD);

?
Проект можешь выслать?

Добавлено через 1 минуту и 41 секунду
В смысле проект/программу с загадочным диалоговым окном
PM MAIL   Вверх
cra6
Дата 6.2.2008, 10:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 10.12.2007

Репутация: нет
Всего: 2



Цитата

А если дальшекод C++
1:
  HWND hwnd = GetWindow(hWnd, GW_CHILD);
?


Дальше хендл берётся но от чего он понять не могу.Точнее не до конца могу.Это вроде как панель с кнопками если верить винсайту...

GetWindowText(hWnd,szTitle,40); ничего не возвращает.
Прикрепил скрин.Программу/исходник выслать не могу так как програма "полусекретная", а исходника вообще нет.Если б был не заморачивался бы с Винапи.Может как то поможет...

Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  example.JPG 116,85 Kb
PM MAIL   Вверх
dizzy1984
Дата 6.2.2008, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 675
Регистрация: 15.2.2007

Репутация: нет
Всего: 25



Цитата(cra6 @  6.2.2008,  12:34 Найти цитируемый пост)
Это вроде как панель с кнопками если верить винсайту

В терминологии виндоус кнопки - тоже окна. Используй spy++ дабы не было идеологических противоречий. Картинка поможет мало -  могу повториться получаешь HWND Окна с надписью "free message..." и находишь HWND его потомка. Это может быть первое поле для ввода, радиобатон "issuer", либо даже кнопка "<<&Back". А может быть это диалог-контейнер для всех этих окон (полей для ввода), тогда ты снова находишь его ребенка, и опять это может быть либо поля для вводи либо какой-то из других контролов на окне. Либо там аж целых 2 вложенных контейнера. Но мы ведь не боимся проверить аж 2 возможных варианта?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0909 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.