Курсор
От: CEMb  
Дата: 21.09.11 17:58
Оценка:
А как можно узнать какой тип курсора в данный момент установлен? IDC_ARROW или там IDC_WAIT какой... Или вообще пользовательский.
Re: Курсор
От: Aniskin  
Дата: 21.09.11 18:54
Оценка: 6 (1)
Здравствуйте, CEMb, Вы писали:

CEM>А как можно узнать какой тип курсора в данный момент установлен? IDC_ARROW или там IDC_WAIT какой... Или вообще пользовательский.


Не совсем то, что нужно, но может быть пригодится
function GetCursorInfo2: TCursorInfo;
var
  hWindow: HWND;
  pt: TPoint;
  dwThreadID, dwCurrentThreadID: DWORD;
begin
  ZeroMemory(@Result, SizeOf(Result));
  if GetCursorPos(pt) then
  begin
    Result.ptScreenPos := pt;
    hWindow := WindowFromPoint(pt);
    if IsWindow(hWindow) then
    begin
      dwThreadID := GetWindowThreadProcessId(hWindow, nil);
      dwCurrentThreadID := GetCurrentThreadId;
      if (dwCurrentThreadID <> dwThreadID) then
        begin
          if AttachThreadInput(dwCurrentThreadID, dwThreadID, True) then
            begin
              Result.hCursor := GetCursor;
              AttachThreadInput(dwCurrentThreadID, dwThreadID, False);
            end;
        end
      else
        Result.hCursor := GetCursor;
    end;
  end;
end;
Re[2]: Курсор
От: CEMb  
Дата: 27.09.11 16:02
Оценка:
Здравствуйте, Aniskin, Вы писали:

CEM>>А как можно узнать какой тип курсора в данный момент установлен? IDC_ARROW или там IDC_WAIT какой... Или вообще пользовательский.


A>Не совсем то, что нужно, но может быть пригодится

A>
function GetCursorInfo2: TCursorInfo;
[...]
A>end;


А тут обязательно AttachThreadInput делать?
Re[3]: Курсор
От: Aniskin  
Дата: 27.09.11 17:32
Оценка:
Здравствуйте, CEMb, Вы писали:

CEM>А тут обязательно AttachThreadInput делать?


Честно говоря, этому коду более 5 лет, и я уже не помню, почему я это сделал.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.