Вниз
Скачать: CL | DM;

Выравнивание в ComboBox при помощи API   Найти похожие ветки 

← →
Александр Григоренко   (2004-03-16 21:44) [0]

Был бы весьма признателен за оказанное содействие в решении моего вопроса, заключающегося в том, как организовать выравнивание текста по правой стороне компонента ComboBox?

Спасибо за помощь!


← →
Cobalt ©   (2004-03-16 23:24) [1]

а чё, в справке нету?
Ты же на API пишешь!!!


← →
Александр Григоренко   (2004-03-16 23:36) [2]

Я, к сожалению, не могу найти параметр для функции SetWindowLong. ES_RIGHT и подобные точно не подходят для ComboBox.


← →
Cobalt ©   (2004-03-17 00:14) [3]

Ещё вопросик - а вы уверены, что такое возможно?
Видели где-то? Где?
А это точно был стандартный Combobox?


← →
Игорь Шевченко ©   (2004-03-17 00:24) [4]

Для ComboBox со стилем CS_DROPDOWN: (На API некогда писать, пишу на VCL, но суть та же самая)

procedure TForm1.FormCreate(Sender: TObject);
var
 ComboEditWindow: HWND;
begin
 ComboEditWindow := GetDlgItem(ComboBox.Handle, 1001);
 if IsWindow(ComboEditWindow) then
   SetWindowLong(ComboEditWindow, GWL_STYLE,
     GetWindowLong(ComboEditWindow, GWL_STYLE) or ES_RIGHT);
end;


При этом текст в окне редактирования становится выровненным по правому краю. Как сделать, чтобы и в списке значения были выровнены по правому краю, увы, не знаю.

Если сделать ComboBox со стилем csOwnerDrawFixed, то можно задавать выравнивание справа для всех частей ComboBox, но ввести текст туда будет нельзя - только выбирать из списка.


← →
Александр Григоренко   (2004-03-17 13:42) [5]

Здравствуйте, Игорь!

Спасибо за ответ! Но у меня как раз ComboBox в стиле csOwnerDrawFixed. Если вас не затруднит, не могли бы вы модифицировать код в соответствии с уточнением? Например, нижеследующий код смещает кнопку раскрытия списка влево.

SetWindowLong(ComboBox1.Handle, GWL_EXSTYLE,
GetWindowLong(ComboBox1.Handle, GWL_EXSTYLE) or WS_EX_RIGHT);


А как можно реализовать выравнивание именно элементов списка по правой стороне?


← →
Игорь Шевченко ©   (2004-03-17 13:51) [6]

Александр Григоренко   (17.03.04 13:42)


> А как можно реализовать выравнивание именно элементов списка
> по правой стороне?


Как вы рисуете элементы списка ?



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.033 c
1-1079950125
Эдуард
2004-03-22 13:08
2004.04.11
Как в disign-time е отловить факт изменения размеров формы?


6-1074180747
Mister_First
2004-01-15 18:32
2004.04.11
Передача файлов по сети без клиента и сервера


1-1082471366
ReNoiZer
2004-04-20 18:29
2004.04.11
компиляция midas и dbExpress dll s прямо в приложение...


1-1082915776
karlos
2004-04-25 21:56
2004.04.11
Реализация мультиблочного редактора.


3-1081004186
RayRom
2004-04-03 18:56
2004.04.11
’’ is not a valid integer value




   Наверх