![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Еще вопросик про кнопочки... :))) [D7, Win95/98, WinXP]
killer © (2003-06-03 18:36:00)Как создать кнопку в загаловке программы? Чтобы она в XP была тоже синенькой, а в 98-ом как в 98-ом?
abcd (2003-06-08 17:28:00) [1]XP поддерживает Visual Styles, поэтому при смене стиля кнопка будет отображаться некрасиво.
Yanis (2003-06-05 08:22:00) [2]Блин, неужели трудно догадться. Снимаешь 3 скриншота кнопки, например X, затем в фотошопе стираешь и рисуешь на ней всё что хочешь, тоже в трёх состояниях. На форме лежит 3 Image, в каждую загружаешь по одному сстоянию кнопки: активное(когда мышь над ней), пасивное, нажатое.
Потом делаешь вот так:
{вот это в какой-нибудь обработчик}
var wDc:HDC;
begin
WDc := GetWindowDc(handle);
MyImage.PaintTo(WDc,5,7);
Потом отлавливаешь координаты мыши, типа:
var
R: TRect;{Это в конце концов будет прямоугольник твоей кнопки}
Cx,Cy: Integer;
XFrame, Yframe: Integer;
begin
WDc := GetWindowDc(handle);
Cx := GetSystemMetrics(SM_CXSize);
Cy := GetSystemMetrics(SM_CYSize);
xFrame := GetSystemMetrics(SM_CXFrame);
yFrame := GetSystemMetrics(SM_CYFrame);
R := Bounds(Width - xFrame - 4*Cx + 2, yFrame + 2, Cx - 2, Cy - 4);
После доработки код идеальным будет.
И все обработчики обрабатываешь отдельно.
p.s. Лишь бы руки были.
killer (2003-06-05 00:08:00) [3]Ну в 98-ом кнопки просто квадратики такие с "_", "Квадратом" и "Х", а в XP они же закругленные такие и синенькие такие, а "Х" красненькая :))) Можно поменять конечно на другой цвет, но мне этот нравится :)))
Yanis (2003-06-04 22:39:00) [4]>что это за синенькие кнопочки в ХР в заголовке программы? У меня уже год ХР стоит и я ни разу их не замечал
Прикольно.
Николай Быков (2003-06-04 22:00:00) [5]1) Вам же ответили
2) Задавайте вопрос точнее
(что это за синенькие кнопочки в ХР в заголовке программы? У меня уже год ХР стоит и я ни разу их не замечал)
killer (2003-06-04 21:22:00) [6]КТО-НИБУДЬ!!!!
killer (2003-06-04 13:38:00) [7]а она будет в Windows98 как обычные ее кнопки и в XP тоже самое? а то когда в XP все кнопки такие, и вдруг какая-то тут из 98-го, как то не очень смотрица. Вот например GetRight5 там так и сделано... как я хотел бы сделать.
clickmaker (2003-06-04 13:31:00) [8]Рисует еще одну кнопку закрытия на заголовке
type
TForm1 = class(TForm)
private
{ Private declarations }
procedure WMNCPaint(var Message: TMessage); message WM_NCPAINT;
public
{ Public declarations }
end;
...
procedure TForm1.WMNCPaint(var Message: TMessage);
var
DC: HDC;
R: TRect;
begin
Message.Result := DefWindowProc(Handle, Message.Msg, Message.WParam, Message.LParam);
DC := GetWindowDC(Handle);
GetWindowRect(Handle, R);
R.Top := 6;
R.Left := Width - 80;
R.Bottom := R.Top + 14;
R.Right := R.Left + 15;
DrawFrameControl(DC, R, DFC_CAPTION, DFCS_CAPTIONCLOSE);
ReleaseDC(Handle, DC);
Message.Result := 0;
end;
killer (2003-06-04 13:02:00) [9]В том то и дело... Я не знаю как это сделать... Знаю что через API функции как-то.
Suntechnic (2003-06-04 06:42:00) [10]Как ты её рисуешь, так она и отображается. Рисуй стандартными средствами, тогда всё "синеньким" будет там где надо.
P.S. Какой вопрос- такой ответ. Ты быть хоть ради приличия написал каким образом ты её отображаешь.
jonni (2003-06-04 03:24:00) [11]a gde eto zagolovok to est"??
killer (2003-06-03 21:46:00) [12]ПОМОГИТЕ ПЛИЗ!!!!!!!!