Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

SendDlgItemMessage [D7, WinXP]


Pattern ©   (2003-08-30 16:09:00) 

Наверное, всем известна эта функция, которая описывается следующим образом:
SendDlgItemMessage(hDlg: HWND; nIDDlgItem: Integer; Msg: UINT; wParam: WPARAM; lParam: LPARAM)
Вот кто мне может объяснить. Например, есть на форме ListBox1. Как мне получить его числовой индентификатор, чтобы занести вместо nIDDlgItem?


Игорь Шевченко   (2003-09-01 15:45:00) [1]


> Наверное, всем известна эта функция, которая описывается
> следующим образом:
> SendDlgItemMessage(hDlg: HWND; nIDDlgItem: Integer; Msg:
> UINT; wParam: WPARAM; lParam: LPARAM)
> Вот кто мне может объяснить. Например, есть на форме ListBox1.
> Как мне получить его числовой индентификатор, чтобы занести
> вместо nIDDlgItem?


А эта...почему не просто SendMessage(ListBox1.Handle, и далее нужные параметры) ?


Pattern   (2003-08-31 09:53:00) [2]

-> DrPass
Ну в этом конечно есть немного маразматики... Но дело то не в том, над чем осуществляется операция: над своими компанентами или над чужими. А в том, как это осуществляется вообще. И между прочим и не совсем всё так критично. Чтобы не попортить другие программы, можно поиздеваться над своими...


DrPass   (2003-08-30 22:13:00) [3]

Брррр! Тогда напрашивается вполне логичный вопрос: нафиг тебе нужна функция SendDlgItemMessage, если ты ее собираешься использовать для посылки сообщения в диалог своей программы, да еще и созданный с помощью VCL????
Это маразм какой-то...


Pattern   (2003-08-30 20:47:00) [4]

-> DrPass
Дык, что я могу открыть редактором ресурсов, если у меня ещё exe-файл не скомпилирован?
-> Ык
Мля, я поражаюсь, как всегда всё рашается проще простого. Огромное спасибо за помощь. А тем кого интересует и он ещё не понял как, показываю:
GetDlgCtrlID(Form1.ListBox1.Handle)
И псё!


DrPass   (2003-08-30 20:11:00) [5]

Чтобы так получить ID, нужно знать хендл, что долго и нудно.
А по поводу #DEFINE IDC_LISTBOX1 101 - это еще никак не определяет ListBox1. Потом в rc-файле будет строка типа
LISTBOX IDC_LISTBOX1, 10, 10, 100, 200 - которая определяет листбокс, его параметры (я указал только координаты), и привязывает его к константе IDC_LISTBOX1.
Так вот о чем речь: тебе нужно открыть прогу редактором ресурсов, и посмотреть, чему там равны эти константы типа IDC_LISTBOX1 - вот и все


Ык   (2003-08-30 19:58:00) [6]

Удалено модератором
Примечание: Offtopic


Pattern   (2003-08-30 17:27:00) [7]

Хм! Теперь понятно, почему в С++ подобную функцию описывают например так:
#DEFINE IDC_LISTBOX1 101
Только вот не совсем понятно, как это определяет именно ListBox1. Тут же не указано что это ListBox1 типа TListBox. Ну ладно с С++.
А в Delphi как извлечь ID из ресурса?


DrPass   (2003-08-30 16:58:00) [8]

Извлечь из ресурсов описание диалога и посмотреть. Delphi тут не причем - это делается на этапе разработки, а не в рантайме. Идентификатор ведь никогда не меняется, он задан программистом при разработке диалога.


Pattern   (2003-08-30 16:36:00) [9]

Только не переносите мой вопрос в топик WinAPI, так как я хочу узнать, как это сделать средствами Delphi.


Наверх

Титульная страница Поиск, карта сайта Написать письмо