![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
![]() Господа программисты!
Прошу помощи в следующей задаче: Мне нужно сделать так, чтоб при выборе пункта в Combobox, содержимое этого пункта заносилось в Label. Пытаюсь следующим образом: Код:
if (lParam = ComboBox1) and (HiWord(wParam) = BN_CLICKED) then //OnClick компонента ComboBox1 begin GetWindowText(ComboBox1, szBuf, 1024); SetWindowText(Label1, szBuf); end; где - szBuf :PChar; Но Label - просто очищается. Если задать в ручную - szBuf:='12345'; то Label так и становится - 12345. Видимо я не правильно пытаюсь получить текст из Combobox Пусть ненавидят миллионы, зато любят тыщи (с) Многоточие Последний раз редактировалось AllMaNi, 04.11.2009 в 23:23. |
#2
|
||||
|
||||
![]() Немного теории...
http://www.firststeps.ru/mfc/winapi/win/r.php?81 http://www.firststeps.ru/mfc/steps/help/r.php?183 Попробуй сначала получить handle объектов...и работать с хендлом... В начале был Бит, потом Байт и только потом появилось Слово... |
#3
|
||||
|
||||
![]() перепробовал все что можно:
для чтения Код:
SendMessage(Combobox1, WM_GETTEXT, 80, LongInt(szBuf)); GetWindowText(ComboBox1, szBuf, 1024); GetDlgItemText(ComboBox1, 0, szBuf , 100 ); для записи Код:
SendMessage(Label1, WM_SETTEXT, 80, LongInt(szBuf)); с хэндлами я и работаю - здесь в примере - Combobox1 и Label1 - и есть хэндлы этих элементов. Код:
Label1 : HWND; //TLabel ComboBox1 : HWND; //TComboBox Button1 : HWND; //TButton Пусть ненавидят миллионы, зато любят тыщи (с) Многоточие |
#4
|
||||
|
||||
![]() Кое что исправил:
Код:
if (lParam = ComboBox1) and (HiWord(wParam) = CBN_SELCHANGE) then //OnClick компонента ComboBox1 begin setlength(szbuf, 80); GetWindowText(ComboBox1, pansichar(szBuf), 80); SendMessage(Label1 , WM_SETTEXT, 80, LongInt(szBuf)); end; Работает но немного не так - на лабел выводится предыдущая запись: если выбираю перую строку - то лабел пустой, вторую, выводится первый и т.д. Где-то видимо надо идекс указать...а где хз... Пусть ненавидят миллионы, зато любят тыщи (с) Многоточие |
#5
|
||||
|
||||
![]() пробовал вот так:
Код:
idCombobox := GetDlgCtrlId(Combobox1); GetDlgItemText(ComboBox1, idCombobox, PAnsiChar(szBuf) , 100 ); тоже не получается... Пусть ненавидят миллионы, зато любят тыщи (с) Многоточие |
#6
|
||||
|
||||
![]() Никто не подскажет???
Пусть ненавидят миллионы, зато любят тыщи (с) Многоточие |