Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > WinApi(scrollbar,form)


Автор: Evghenusi 30.5.2007, 22:40
Помогите!
я в программировании новичок, а в WinApi тем более.
я использую такой код:

Код

program Project1;

uses
  Windows, Messages;

const
  WndClass = 'TWinApiWnd';
  WndCaption = 'Ðàáîòà íà Win API';

var
  Wc: TWndClassEx;
  Wnd,scrollbar,panel: HWND;
  Msg: TMsg;

(* Îêîííàÿ ïðîöåäóðà *)
function WindowProc( Wnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM ): LRESULT; stdcall;
begin
case Msg of
WM_DESTROY: begin
PostQuitMessage( 0 );
Result := 0;
Exit;
end;
else
Result := DefWindowProc( Wnd, Msg, wParam, lParam );
end;
end;

begin
   // Çàïîëíÿåì ñòðóêòóðó TWndClassEx
with Wc do begin
cbSize := SizeOf( Wc );
style := CS_HREDRAW or CS_VREDRAW;
lpfnWndProc := @WindowProc;
cbClsExtra := 0;
cbWndExtra := 0;
hInstance := hInstance;
hIcon := LoadIcon( 0, IDI_APPLICATION );
hCursor := LoadCursor( 0, IDC_ARROW );
hbrBackground := COLOR_WINDOW;
lpszMenuName := nil;
lpszClassName := WndClass;
end;
RegisterClassEx(Wc);
Wnd := CreateWindowEx(0,WndClass,WndCaption,WS_OVERLAPPEDWINDOW,10,10,310,105,0,0,hInstance,nil);
ShowWindow(Wnd,SW_SHOWNORMAL);
Panel := CreateWindowEx(0,'Panel','Vid',WS_CHILD or WS_VISIBLE,52,52,280,60,Wnd,0,hInstance,nil);
ShowWindow(panel,SW_SHOWNORMAL);
scrollbar:=CreateWindowEx(0,'SCROLLBAR',nil,WS_CHILD or SBS_HORZ,0,0,200,10,Wnd,0,hInstance,nil);
ShowWindow(Scrollbar,SW_SHOWNORMAL);

while GetMessage(Msg,0,0,0) do begin
TranslateMessage(Msg);
DispatchMessage(Msg);
end;
Halt(Msg.wParam);
end.


вопросы:
1.  в VCL есть процедура FormResize как её сделать в WinApi
2.  как Scrollbar-у сделать процедуру Scrollbar.scroll
3.  и ещё, вопрос глупый, но в VCL - Form1.Panel.width, а как в WinApi указать Form (название окна)  smile 

Автор: ama_kid 31.5.2007, 11:02
Цитата(Evghenusi @  30.5.2007,  22:40 Найти цитируемый пост)
я в программировании новичок, а в WinApi тем более.
а в правильном и чистом написании кода - ваще труба...  smile Форматируй код нормально (на будущее)...
Цитата(Evghenusi @  30.5.2007,  22:40 Найти цитируемый пост)
1.  в VCL есть процедура FormResize как её сделать в WinApi
Использовать http://msdn2.microsoft.com/en-us/library/ms633534.aspx или http://msdn2.microsoft.com/en-us/library/ms633545.aspx
Цитата(Evghenusi @  30.5.2007,  22:40 Найти цитируемый пост)
2.  как Scrollbar-у сделать процедуру Scrollbar.scroll
Кури http://msdn2.microsoft.com/en-us/library/ms651294.aspx
Цитата(Evghenusi @  30.5.2007,  22:40 Найти цитируемый пост)
3.  и ещё, вопрос глупый, но в VCL - Form1.Panel.width, а как в WinApi указать Form (название окна)
Не понял связи между "Width" и "(название окна)". Если тебе надо изменить название окна - юзай http://msdn2.microsoft.com/en-us/library/ms633546.aspx

P.S. Читай МСДН - там все есть...


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)