Я хотел бы выбрать элемент управления ярлыком, как на скриншоте. Это можно сделать с помощью TEdit без полей, но мне было интересно, есть ли другой способ работы с градиентным фоном?
пример http://usera.ImageCave.com/brk303/SelectableLabel.png.jpg
Чтобы уточнить, я использую простой PageControl, который, поскольку Win XP имеет градиентное рисование, TEdit без полей, размещенный на странице, не идеально сочетается:
Редактировать на PageControl http://usera.ImageCave.com/brk303/Gradient.png.jpg
Обновление:
Мне удалось пройти половину пути, добавив
procedure CNCtlColorStatic(var AMsg: TWMCtlColorStatic); message CN_CTLCOLORSTATIC;
procedure TTransparentEdit.CNCtlColorStatic(var AMsg: TWMCtlColorStatic);
begin
with ThemeServices do
if ThemesEnabled then
begin
SetBkMode(AMsg.ChildDC, Windows.TRANSPARENT);
DrawParentBackground(Handle, AMsg.ChildDC, nil, False);
AMsg.Result := GetStockObject(NULL_BRUSH);
end
else
inherited;
end;
Теперь это прозрачно, но нужно что-то еще сделать, поскольку рисование при выделении текста не работает должным образом. Поведение трудно объяснить, я буду исследовать дальше и обновлять здесь ...