Помогите! я в программировании новичок, а в 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 (название окна) |