Форум: "WinAPI";
Текущий архив: 2002.05.20;
Скачать: [xml.tar.bz2];
ВнизStatusBar и ToolBar на API Найти похожие ветки
← →
Velocity (2002-03-16 16:40) [0]Огромное спасибо всем кто на мои тупые вопросы отвечает. Как видно мир не без добрых людей... Помогите с сабжем, подробные комментарии не обязательны, заранее спасибо !!!
← →
Song (2002-03-16 17:00) [1]А в чём именно Вам помочь с этими компонентами?
← →
Velocity (2002-03-16 17:05) [2]Ну... Как их на апи запрограммить
← →
Dick (2002-03-16 21:00) [3]Возьми, да посмотри исходники.
← →
VuDZ (2002-03-17 07:01) [4]это обчыное окно со стилями WS_CHILD и WS_VISIBLE. Имя класса - "msctls_statusbar32".
Может иметь стиль CBRS_BOTTOM который равен
CBRS_ALIGN_BOTTOM(0x8000L) and CBRS_BORDER_TOP(0x0200L)
Но, по-моему, эти стили только для MFC, так как определено только у него. Хотя ЧЕЗ.
← →
Evgeny (2002-03-19 06:23) [5]Можно и через подключаемый RES файл:
CONTROL "", ID_SBAR, "msctls_statusbar32", 3, 0, 188, 184, 12, WS_EX_DLGMODALFRAME
с ToolBar`ом чуть-чуть сложнее:
{ В ресурсном файле: иконка и 2 образа для кнопки }
program TBar;
uses
Windows, Messages, ShellAPI, CommCtrl;
const
szAppName = "Flat Button";
var
Wnd : HWND;
Msg : TMsg;
WndClass : TWndClassEX;
hTBar : HWND;
hImList : HWND;
btnTBar : TTBButton;
{$R TBar.res}
//---------------------------------------------------------
procedure CreateToolBarButton(Wnd : HWND);
var
tbab : TBADDBITMAP;
begin
hTBar := CreateWindowEx(0, "ToolBarWindow32", NIL,
CCS_NOPARENTALIGN or CCS_NORESIZE or
TBSTYLE_TOOLTIPS or WS_CHILD or WS_VISIBLE or
TBSTYLE_FLAT or CCS_NODIVIDER,
130, 100, 28, 28,
Wnd, 3000, hInstance, NIL);
SendMessage(hTBar, TB_BUTTONSTRUCTSIZE, SizeOf(TTBBUTTON), 0);
SendMessage(hTBar, TB_SETBITMAPSIZE, 0, MAKELONG(20, 20));
tbab.hInst := hInstance;
tbab.nID := 4020; // моно картинка
SendMessage(hTBar, TB_ADDBITMAP, 1, Integer(@tbab));
// цветная картинка
hImList := ImageList_LoadBitmap(hInstance, MAKEINTRESOURCE(4025), 20, 1, $C0C0C0);
SendMessage(hTBar, TB_SETHOTIMAGELIST, 0, hImList);
with btnTBar do
begin
iBitmap := 0;
idCommand := 3010;
fsState := TBSTATE_ENABLED;
fsStyle := TBSTYLE_BUTTON;
dwData := 0;
iString := 0;
end;
SendMessage(hTBar, TB_ADDBUTTONS, 1, Integer(@btnTBar));
end;
//---------------------------------------------------------
function CallBackProc(Wnd: THandle; iMsg: Integer;
wParam, lParam: Longint): Integer; stdcall; export;
begin
CallBackProc := 0;
case iMsg of
WM_CREATE : CreateToolBarButton(Wnd);
WM_NOTIFY :
begin
if PToolTipText(lParam).hdr.code = TTN_NEEDTEXT then
case PToolTipText(lParam).hdr.idFrom of
3010 : PToolTipText(lParam).lpszText := "ToolBar Flat Button";
end;
end;
WM_COMMAND :
begin
case LOWORD(wParam) of
3010 : SendMessage(Wnd, WM_CLOSE, 0, 0);
end;
end;
WM_DESTROY :
begin
PostQuitMessage(0);
Exit;
end;
end;
CallBackProc := DefWindowProc(Wnd, iMsg, wParam, lParam);
end;
//---------------------------------------------------------
begin
WndClass.cbSize := SizeOf(WndClass);
WndClass.style := CS_HREDRAW or CS_VREDRAW;
WndClass.lpfnWndProc := @CallBackProc;
WndClass.cbClsExtra := 0;
WndClass.cbWndExtra := 0;
WndClass.hInstance := hInstance;
WndClass.hIcon := LoadIcon(hInstance, MAKEINTRESOURCE(4010));
WndClass.hCursor := LoadCursor(0, IDC_ARROW);
WndClass.hbrBackGround := GetStockObject(LTGRAY_BRUSH);
WndClass.lpszMenuName := "";
WndClass.lpszClassName := szAppName;
WndClass.hIconSm := LoadImage(hInstance, MAKEINTRESOURCE(4010),
IMAGE_ICON, 16, 16, 0);
if RegisterClassEx(WndClass) = 0 then
Exit;
Wnd := CreateWindowEx(0, szAppName, szAppName,
WS_OVERLAPPEDWINDOW,
0, 0, 300, 200,
0, 0,
hInstance, NIL);
InitCommonControls;
ShowWindow(Wnd, CmdShow);
while(GetMessage(msg, 0, 0, 0)) do
begin
TranslateMessage(msg);
DispatchMessage(msg);
end;
end.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2002.05.20;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c