Форум: "WinAPI";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.28;
Скачать: [xml.tar.bz2];




Вниз

ToolBar 


vov1   (2001-11-24 10:59) [0]

как в WinApi создавать ToolBar



absent   (2001-11-24 16:59) [1]

Можно так:
hToolBar:= CreateWindowEx(0, TOOLBARCLASSNAME, nil,
WS_CHILD or
WS_VISIBLE or
TBSTYLE_TOOLTIPS or
CCS_ADJUSTABLE or
TBSTYLE_FLAT or
CCS_TOP,
0, 0, 0, 0,
hMainWnd,
0, hInstance, nil);
Расположится в самом верху формы. Как добавить на него кнопки и т.д. - написано в win32.hlp (с примерами)



vov1   (2001-11-25 20:12) [2]

спасибо, а по поводу кнопок, примерчик можешь скинуть?
А то что-то не получается...



absent   (2001-11-26 08:17) [3]

ей богу, проще хелп почитать...
кусок из моей программы:

const
id_Cut = 1;
id_Copy = 2;
id_Paste = 3;
id_Undo = 4;
id_Redo = 5;
id_Delete = 6;
id_New = 7;
id_Open = 8;
id_Save = 9;
id_View = 10;
id_Char = 11;
id_Find = 13;
id_Replace = 14;
id_Print = 15;

id_Play = 16;
id_PlayBuf = 17;
id_Stop = 18;
id_Win = 19;
id_Dos = 20;
id_Koi = 21;
id_Options = 22;
id_Background = 23;
id_Help = 24;
id_About = 25;
id_FindNext = 26;
id_SaveAs = 27;
id_ShowWindow = 28;
id_WordWrap = 29;
id_Exit = 30;
id_Justify = 31;
id_Center = 32;
id_Left = 33;
id_Right = 34;
id_Record = 35;

DefaultBar: packed array[1..26] of byte=(
id_New, id_Open, id_Save, id_SaveAs, 0,
id_Cut, id_Copy, id_Paste, 0,
id_Undo, id_Redo, 0,
id_Find, id_FindNext, id_Replace, 0,
id_Win, id_Dos, id_Koi, 0,
id_WordWrap, 0,
id_Play, id_PlayBuf, id_Stop, id_Record);

function CreateToolBar: boolean;
var
TBA: TTBADDBITMAP;
TBB: TTBButton;
i: integer;
begin
result:= false;
hToolBar:= CreateWindowEx(0, TOOLBARCLASSNAME, nil,
WS_CHILD or
WS_VISIBLE or
TBSTYLE_TOOLTIPS or
CCS_ADJUSTABLE or
TBSTYLE_FLAT or
CCS_TOP,
0, 0, 0, 0,
hMainWnd,
0, hInstance, nil);
if hToolBar <> 0 then
begin
result:= true;
hOldToolProc:= SetWindowLong(hToolBar, gwl_wndproc, Integer(@hToolProc));
SendMessage(hToolBar, TB_BUTTONSTRUCTSIZE, sizeof(TTBBUTTON), 0);
// берем стандартные картинки + картинки из ресурса (1)
TBA.hInst:= THandle(-1);
TBA.nID:= ord(false);
SendMessage(hToolBar, TB_ADDBITMAP, 15, longint(@TBA));
hToolBmp:= LoadImage(hInst, PChar(1), IMAGE_BITMAP, 0, 0,
LR_LOADMAP3DCOLORS or
LR_LOADTRANSPARENT or
LR_DEFAULTSIZE);
TBA.hInst:= 0;
TBA.nID:= hToolBmp;
SendMessage(hToolBar, TB_ADDBITMAP, 15, longint(@TBA));
if SendMessage(hToolBar, TB_BUTTONCOUNT, 0, 0) = 0 then
begin
TBB.fsState:= TBSTATE_ENABLED;
TBB.dwData:= 0;
TBB.bReserved[1]:= 0;
TBB.bReserved[2]:= 0;
TBB.iString:= 0;
for i:=1 to length(DefaultBar) do
begin
if DefaultBar[i] <> 0 then
begin
tbb.idCommand:= DefaultBar[i];
tbb.iBitmap:= tbb.idCommand - 1;
tbb.fsStyle:= TBSTYLE_BUTTON
end
else
begin
tbb.idCommand:= 0;
tbb.iBitmap:= 0;
tbb.fsStyle:= TBSTYLE_SEP;
end;
SendMessage(hToolBar, tb_addbuttons, 1, lParam(@TBB));
end;
end;
end;
end;

если что-то тут поймешь - буду рад :)




Форум: "WinAPI";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.28;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.73 MB
Время: 0.027 c
1-90284           }{elgi                2002-01-09 15:48  2002.01.28  
Как установить С Builder компонент в Delphi


6-90329           Alexandr              2001-11-05 12:14  2002.01.28  
Print Server и печать из-под DOS


6-90339           Xeon                  2001-10-27 22:48  2002.01.28  
Dialer


14-90359          MC TOL                2001-12-03 14:40  2002.01.28  
Геометрическая задачка для 8-го класса.


3-90230           Mr.Sane               2001-12-25 10:45  2002.01.28  
SQL