Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.13;
Скачать: CL | DM;

Вниз

SendDlgItemMessage   Найти похожие ветки 

 
Pattern ©   (2003-08-30 16:09) [0]

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


 
Pattern ©   (2003-08-30 16:36) [1]

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


 
DrPass ©   (2003-08-30 16:58) [2]

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


 
Pattern ©   (2003-08-30 17:27) [3]

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


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

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


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

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


 
Pattern ©   (2003-08-30 20:47) [6]

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


 
DrPass ©   (2003-08-30 22:13) [7]

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


 
Pattern ©   (2003-08-31 09:53) [8]

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


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


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


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



Страницы: 1 вся ветка

Текущий архив: 2003.11.13;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.025 c
6-41870
TButton
2003-09-05 20:50
2003.11.13
Сокеты


1-41202
Deb
2003-11-02 11:39
2003.11.13
Работа с выделенным текстом в Memo


1-41480
Checist [root]
2003-10-28 14:58
2003.11.13
Загрузка страниц из кеша


14-41907
Study
2003-10-21 13:39
2003.11.13
nmsmtp


6-41855
Yot
2003-09-10 13:11
2003.11.13
Client_Server