![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Кто подскажет как запретить выходить курсору за форму если форма написана на api. Знаю как реализовать в VLC, но в api не могу ее перевести или просто не понимаю как.
Как я реализовываю в VLC: Код:
var aRect: TRect; begin aRect:=BoundsRect; ClipCursor(@myr); end; Кто поможет перевести в api? |
|
#2
|
||||
|
||||
|
Код:
var ARect: TRect; begin GetWindowRect(Handle, ARect); ClipCursor(@ARect); end; |
|
#3
|
|||
|
|||
|
Цитата:
а как правильно применить если форма на api |
|
#4
|
||||
|
||||
|
Посмотреть исходники ClipCursor религия не позволяет?
|
|
#5
|
||||
|
||||
|
Цитата:
|
|
#6
|
||||
|
||||
|
Цитата:
Код:
var Handle: THandle; ... Handle:=CreateWindow() ... GetWindowRect() ClipCursor() Последний раз редактировалось NumLock, 13.10.2014 в 18:35. |
|
#7
|
||||
|
||||
|
Похоже ТСу нужна инфа про отлов сообщений нахождения курсора в пределах "самопальной" формы, есть непонятки как эта форма вообще создется, без кода не видно какие описатели к ней применимы, если аффтар данное святотатство покажет, то можно кое-что и подсказать ему, ясен пень, имхо (оффтоп - тема по-тихоньку во флудильню переходит:-)
|
|
#8
|
|||
|
|||
|
вот в таком форме нужно отловаить, пробывал как написано выше но увы не отловил(
Код:
program Project1;
uses
windows,
messages;
var
wc: TWndClass;
hWindow: HWND;
Msg: TMsg;
function MainWndProc(hWindow: HWND; Msg: UINT; wParam: wParam;
lParam: lParam): LRESULT; stdcall; export;
var
ps: TPaintStruct;
begin
Result := 0;
case Msg of
WM_PAINT:
begin
BeginPaint(hWindow, ps);
SetBkMode(ps.hdc, TRANSPARENT);
EndPaint(hWindow, ps);
end;
WM_DESTROY: PostQuitMessage(0);
else
begin
Result := DefWindowProc(hWindow, Msg, wParam, lParam);
Exit;
end;
end;
end;
begin
wc.lpszClassName := 'YourAppClass';
wc.lpfnWndProc := @MainWndProc;
wc.Style := CS_VREDRAW or CS_HREDRAW;
wc.hInstance := hInstance;
wc.hIcon := LoadIcon(0, IDI_APPLICATION);
wc.hCursor := LoadCursor(0, IDC_ARROW);
wc.hbrBackground := (COLOR_WINDOW + 1);
wc.lpszMenuName := nil;
wc.cbClsExtra := 0;
wc.cbWndExtra := 0;
RegisterClass(wc);
hWindow := CreateWindowEx(WS_EX_CONTROLPARENT or WS_EX_WINDOWEDGE,
'YourAppClass',
'API',
WS_VISIBLE or WS_CLIPSIBLINGS or
WS_CLIPCHILDREN or WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, 0,
400, 300,
0,
0,
hInstance,
nil);
ShowWindow(hWindow, CmdShow);
UpDateWindow(hWindow);
while GetMessage(Msg, 0, 0, 0) do
begin
TranslateMessage(Msg);
DispatchMessage(Msg);
end;
Halt(Msg.wParam);
end.
|