Форум: "WinAPI";
Текущий архив: 2006.03.26;
Скачать: [xml.tar.bz2];
ВнизСистемный курсор Найти похожие ветки
← →
Igor_thief (2006-01-07 14:02) [0]Как сделать так, чтобы загруженый мною курсор был одинаков для всех окон. Т.е. сделать глобальный курсор, который не будет меняться, куда б его не навели.
ЗЫ: только конкретные примеры. Варианты про использование SetSystemCursor без примеров даже не предлогать.
Я делаю это приблизительно так:
var
OldCursor, NewCursor, tmp: HCURSOR;
crArray: array [0..15] of integer = (OCR_NORMAL, OCR_IBEAM, OCR_WAIT, OCR_CROSS,
OCR_UP, OCR_SIZE, OCR_ICON,OCR_SIZENWSE, OCR_SIZENESW,
OCR_SIZEWE, OCR_SIZENS, OCR_SIZEALL, OCR_ICOCUR, OCR_NO,
OCR_HAND, OCR_APPSTARTING);
....
procedure TForm1.FormCreate(Sender: TObject);
begin
NewCursor := LoadCursorFromFile("curs.cur");
end;
.....
var
i: integer;
begin
for i := 0 to 15 do
SetSystemCursor(CopyImage(NewCursor, IMAGE_CURSOR, 0, 0, LR_COPYFROMRESOURCE),
crArray[i]);
end;
...
У этого метода есть один недостаток (ну может больше, но я пока про них не знаю:)). Если курсор в данный момент имеет вид crHSplit, то он не за меняется на мой курсор, пока я не подергаю мышкой по моей форме (только после этого он становится таким, каким запланировано). Я конечно понимаю, что нету такой константы в Windows (есть только те, которые перечислены в масиве). Как обойти такую ситуацию? Может есть какая возможность получить текущий курсор и заменить его на мой, а потом в цикле дополнительно заменить все стандартные.
← →
Igor_thief (2006-01-07 16:49) [1]Проблема решена!
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2006.03.26;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.05 c