Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Еще вопросик про кнопочки... :))) [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]

ПОМОГИТЕ ПЛИЗ!!!!!!!!


Наверх

Титульная страница Поиск, карта сайта Написать письмо