Страница: 1 |
Страница: 1 |
Вопрос: ListBox его раскрутка через API.
Добавлено: 15.07.06 22:30
Автор вопроса: ENIX | ICQ: 238819245
Пишу один контрольчик...возникли проблемы.
1) Как в стандартном ListBox'e через АПИ включить гориз. скрул...вертикальный есть, а гориз. даже когда строка выдазиет его нету.
2) Либо как выключить гориз. скрул. И тут же как двигать каретку в списке, т.е. создать общий скрул на несколько ListBox'ов.
3) У нас есть строка, которая должна добавляться как новый элемент в ListBox. Но она должна состоять из столбцов разной длины. Как сделать выравнивание. Юзал и переменные с фиксир. длиной - всеравно строки не ровные (непонятно почему), использую vbTab, но получается геморойно т.к. есть предел в длине конрола, использовал SendMessage на ListBox ...вообщем получалось все некрасиво. Есть у кого пример?
Ответы
Всего ответов: 11
Номер ответа: 1
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #1
Добавлено: 16.07.06 00:01
sne писал на апи, должно в примерах быть...
Номер ответа: 2
Автор ответа:
ENIX
ICQ: 238819245
Вопросов: 9
Ответов: 76
Профиль | | #2
Добавлено: 16.07.06 00:31
Ухти...не именно то, но оно помогло показать горизонтальный скрул.
Может кому еще понадобиться: sne и его примерчик ApiListBox.
Непонятно конечно каким .... мелкософты сделали в этом контроле автомат. показ гориз. скрола и ручное через АПИ вертикального. Уже б сделали оба вручную. Либо я чего не досмотрел.
Кому будет интересно: Изменить и собственно показать гориз. скрул можно так..
Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByRef lParam As Any) As Long
Private Const LB_SETHORIZONTALEXTENT As Long = &H194
.......
'[hwnd] - Хандл ЛистБокса
'[Value] - собственно как в скруле
SendMessage [hwnd], LB_SETHORIZONTALEXTENT, [Value], ByVal 0&
Еще много интересного есть начиная с приставки LB_
Также чтобы лучше оринтироваться взял у мелков:
ABM Application desktop toolbar
BM Button control
CB Combo box control
CBEM Extended combo box control
CDM Common dialog box
DBT Device
DL Drag list box
DM Default push button control
DTM Date and time picker control
EM Edit control
HDM Header control
HKM Hot key control
IPM IP address control
LB List box control
LVM List view control
MCM Month calendar control
PBM Progress bar
PGM Pager control
PSM Property sheet
RB Rebar control
SB Status bar window
SBM Scroll bar control
STM Static control
TB Toolbar
TBM Trackbar
TCM Tab control
TTM Tooltip control
TVM Tree-view control
UDM Up-down control
WM General window
Еще для редактирования и выравнивания строк лучше чем вставка vbTab между "столбцами" одной строки не нашол. В ListBox'e для изменения "ширины" Таба есть константа LB_SETTABSTOPS при этом [Value]~20,52 и т.д.
Кто знает более лучший способ выравния "столбцов" в стобце пишите, буду благодарен. Нужно для написания контрола связанного с инфой о процессах.
Номер ответа: 3
Автор ответа:
Sacred Phoenix
ICQ: 304238252
Вопросов: 52
Ответов: 927
Профиль | | #3
Добавлено: 16.07.06 12:05
Номер ответа: 4
Автор ответа:
ENIX
ICQ: 238819245
Вопросов: 9
Ответов: 76
Профиль | | #4
Добавлено: 16.07.06 17:42
Он та не вышел,нужно просто увеличить его функциональность. И самое главное организовать в нем более одного столбца, что в нем вроде не предусмотрено. Существ. параметр Columns относится к "газутному" типу, поэтому и возникли напряги с форматированием строк. Если знаеш что-то интересное говори, буду благодарен !
Номер ответа: 5
Автор ответа:
Sacred Phoenix
ICQ: 304238252
Вопросов: 52
Ответов: 927
Профиль | | #5
Добавлено: 16.07.06 18:20
Номер ответа: 6
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #6
Добавлено: 16.07.06 19:31
ENIX, ты не прав, ListView как раз предназначен для этого...
Номер ответа: 7
Автор ответа:
ENIX
ICQ: 238819245
Вопросов: 9
Ответов: 76
Профиль | | #7
Добавлено: 17.07.06 02:31
Аввв...запутался и вас запутал.
2Sacred Phoenix Говориш о ListView. Скажи мне кое мне нужен в собственном контроле еще один контрол. Если я правильно понимаю используя в своем контроле Microsoft Windows Common Controls 6.0, то его нужно таскать за собой, а это груда много весит. Поэтому я и использую ListBox....а вот там таки и нету возможности организации "многостолбцовости".
На ListView не заезжаю. В контроле есть всё что нужно. А вот List Box храмает или я опять не прав. Поэтому и доделываю List Box, превращая его в ListView. Лано стока разговоров об контроле..не очем разговаривать...просто приятно поговорить о любимом деле с понимающими людьми)))
Номер ответа: 8
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #8
Добавлено: 17.07.06 04:50
веришь? и там есть! ))
Номер ответа: 9
Автор ответа:
ENIX
ICQ: 238819245
Вопросов: 9
Ответов: 76
Профиль | | #9
Добавлено: 17.07.06 13:50
Подскажи если не сложно. А сам искал и в книжке у мну написано, что типа там нельзя цитирую "в Visual Basiс не поддерживаются настоящие многостолбцовые списки Access, в которых различные строки оттображаются в различных стобца... "
Номер ответа: 10
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #10
Добавлено: 17.07.06 19:08
ну правельно в книжке написано...
<>
т.е. прям как в LV понятное дело не сделаешь, но просто столбцы можно...
Никогда не думал зачем в List есть свойство Columns?
Номер ответа: 11
Автор ответа:
Sacred Phoenix
ICQ: 304238252
Вопросов: 52
Ответов: 927
Профиль | | #11
Добавлено: 17.07.06 19:29