Не знаю как это юзатьПодфункция 4 - загрузить курсор
Параметры:
eax = 37 - номер функции
ebx = 4 - номер подфункции
dx = источник данных:
dx = LOAD_FROM_FILE = 0 - данные в файле
ecx = указатель на полный путь к файлу курсора
файл курсора должен быть в формате .cur, стандартном для MS Windows, причём размером 32*32 пикселя
dx = LOAD_FROM_MEM = 1 - данные файла уже загружены в память
ecx = указатель на данные файла курсора
формат данных такой же, как и в предыдущем случае
dx = LOAD_INDIRECT = 2 - данные в памяти
ecx = указатель на образ курсора в формате ARGB 32*32 пикселя
edx = 0xXXYY0002, где
XX = x-координата "горячей точки" курсора
YY = y-координата
0 ≤ XX, YY ≤ 31
Возвращаемое значение:
eax = 0 - неудача
иначе eax = хэндл курсора
Курсоры
-
Подскажите пожалуйста, как удалить курсор мыши в окне программы или заменить на другой курсор (только без использования .cur файлов). Курсор могу нарисовать попиксельно.. а как это все дело в структуру в памяти загнать не знаю..
может так?
Code: Select all
mov eax,37
mov ebx,4
xor edx,edx
mov ecx,path
int 0x40
path db '/rd/1/cursor.cur'
Veliant, дык говорю ж, что без использования внешних файлов.. ибо это ни к чему хорошему не приведет.
где аа - значение альфа-канала, rr - красный, gg - зеленый, bb - синий для каждого (!) пикселаmov eax,37
mov ebx,4
mov edx,2
mov ecx,cur
int 0x40
cur:
db 0xaa, 0xrr, 0xgg, 0xbb ... так 32 раза
db ... так 32 строки
А вообще это мазохизм Проще файл считать и не мучаться
Я лублу помучаться..Heavyiron wrote:А вообще это мазохизм Проще файл считать и не мучаться
Если не секрет, а как эта структура на сишке выглядеть будет? Типа такого?
Code: Select all
char cur[32][4*32];
// или даже так
typedef unsigned __int32 Dword;
Dword cur[32][32];
Ошибка при линковке через VS2005
Code: Select all
void ChangeCursor()
{
char cur[32*32*4];
__asm{
mov eax, 37
mov ebx, 4
mov edx, 0x05050002
mov ecx, cur
int 0x40
}
}
game.obj : error LNK2019: unresolved external symbol __chkstk referenced in function "void __cdecl ChangeCursor(void)" (?ChangeCursor@@YAXXZ)
Serial
Ты решил загрузить курсор из стека ? Там сплошной мусор.
И чем тебе не нравятся cur ? Их можно в VC сделать.
Ладно, если тебе нравится raw ARGB, сохраняешь образ в файл и делаешь заглушку на асме
Ты решил загрузить курсор из стека ? Там сплошной мусор.
И чем тебе не нравятся cur ? Их можно в VC сделать.
Ладно, если тебе нравится raw ARGB, сохраняешь образ в файл и делаешь заглушку на асме
Code: Select all
format MS COFF
public cursor1
public cursor2
section '.data' align 16 data readable writable
cursor1:
file 'cursor1.raw'
cursor2:
file 'cursor2.raw'
Вот только что отладил работу...Serge wrote:Serial
Ты решил загрузить курсор из стека ? Там сплошной мусор.
И чем тебе не нравятся cur ? Их можно в VC сделать.
Code: Select all
Dword *cur = new Dword[1024];
for (int i = 0; i < 1024; i++)
{
cur[i] = 0x00000000;
}
delete[] cur;
Всем спасибо за помощь!
Serial
Он мерцает там где нет аппаратного курсора. А там где он есть начнёт мерцать твой вариант
Он мерцает там где нет аппаратного курсора. А там где он есть начнёт мерцать твой вариант
а где есть аппаратный курсор?Serge wrote:Serial
Он мерцает там где нет аппаратного курсора. А там где он есть начнёт мерцать твой вариант
в ati видеокартах radeon 9ххх
Хм.. а это уже интересноHeavyiron wrote:в ati видеокартах radeon 9ххх
Но всё равно имхо большинство юзеров будут с другими видюхами.
[офф]Кстати, тяжело ли написать подобный драйвер для NVidia?[/офф]
Точнее аппаратный курсор должен работать на ATI 7500 - x850 и не работать на новых х1000+
На сколько я понял по постам Serge, проблема только в отсечении курсора?Heavyiron wrote:http://meos.sysbin.com/viewtopic.php?t= ... c&start=45
Who is online
Users browsing this forum: No registered users and 13 guests