![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как добавить BS_FLAT в BitBtn и GroupBox, CheckBox. [D7, Win95/98, WinXP]
Нулевой © (2006-02-07 14:56:00)Для Button получилось просто:
procedure TFltButton.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
if FFlat then
Params.Style := Params.Style or BS_PUSHBUTTON or BS_FLAT
end;
procedure TFltButton.SetFlat(const Value: boolean);
begin
if FFlat <> Value then
begin
FFlat := Value;
RecreateWnd;
end
end;
procedure Register;
begin
RegisterComponents('Samples', [TFltButton]);
end;
Для остальных ни как не могу разобраться, что перехватывать...
Спасибо.
Нулевой (2006-02-07 16:46:00) [1]Хотя получил то что хотел, но как-то страно получил...
Нулевой (2006-02-07 16:44:00) [2]Крыша едит...
Делаю checkbox получаю groupbox, что за фигня???!!!
type
TFltCheckBox = class(TCheckBox)
private
{ Private declarations }
protected
{ Protected declarations }
procedure CreateParams(var Params: TCreateParams); override;
public
{ Public declarations }
published
{ Published declarations }
end;
procedure Register;
implementation
procedure TFltCheckBox.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
Params.Style := Params.Style or BS_CHECKBOX or BS_FLAT
end;
procedure Register;
begin
RegisterComponents('Samples', [TFltCheckBox]);
end;
Что не так делаю?
Юрий Зотов (2006-02-07 16:32:00) [3]> Нулевой © (07.02.06 15:59) [2]
1. Что такое "класс окна" и "стиль окна"?
2. Как расшифровывается приставка BS?
3. К чему эта приставка относится и к чему она НЕ относится?
Нулевой (2006-02-07 15:59:00) [4]В данном коде работает:
Btns[4] := CreateWindowEx(0, 'button', 'BS_GROUPBOX', BS_GROUPBOX or BS_FLAT or
ws_child or ws_visible, 10, 130, 150, 35, wndMain, 0, hinstance, nil);
Юрий Зотов (2006-02-07 15:39:00) [5]А Вы уверены, что у остальных контролов вообще существует плоский стиль? Посмотрите в MSDN, есть ли он.
Если есть, то делаете точно так же. А если нет, то придется рисовать контрол самому.