Podskajite kak mojno realisowaty takuy temy , sapuskay process otkriwaetza nektoroe okno wnem ho4y proverity nektrii Pixel nahodyshisy kprimeru w coordinatah 100,100 wot neyasno 4em peremenuy HDC sapolnyti. Esli mojno skinty primernii skelet sdesy
eshe woprosik invoke GetPixel,hdc,0,0 mov tcol,eax kak is tcol witashity skolko tam Red,Green,Blue? wse po toije sheme : RGB macro red, green, blue xor eax, eax mov ah, blue shl eax, 8 mov ah, green mov al, red endm ???
Так же как и упаковывалось, только в обратном порядке: Код (Text): mov eax,tcol and eax,0FFh ;в eax - красный mov eax,tcol shr eax,8 and eax,0FFh ;в eax - зеленый mov eax,tcol shr eax,16 and eax,0FFh ;в eax - синий
wrode normalno wse no wot srawnenei krivo kakto wihodit , w MessageBox pokasiwet 4to 110 , no pri srawnenii po4emu goworitza 4to ne rawno , podskajite 4ego ne tak Transport Proc invoke GetDC,windhand mov hDC1, eax invoke GetPixel,hDC1,850,70 and eax,0FFh ;mov hDC2,eax invoke dwtoa,eax,addr hDC2 Invoke MessageBox, hwnd, addr hDC2, addr hDC2 , MB_OK+MB_ICONWARNING cmp hDC2,110 je @F Invoke MessageBox, hwnd, addr Good, addr Good , MB_OK+MB_ICONWARNING ret @@: Invoke MessageBox, hwnd, addr Bad, addr Bad, MB_OK+MB_ICONWARNING ret Transport ENDP
da ne prosto kakto kriwo srawniwaetza cmp hDC2,110 wsegda po4emuto nerawno daje w tom slu4aii kogda w etom pixele krasnii zwet 110
Так ты же сравниваешь число 110 со строкой db '110',0 естественно, не будет совпадать, т.к. строка '110',0 - это последовательность из 4-х байт: 49, 49, 48, 0, т.е. ты сравниваешь 110 и 49. Если хочется сравнивать, то сравнивай либо две строки, либо два числа. Код (Text): Get_Colour proc LOCAL szBuffer[256] :BYTE LOCAL hDC :DWORD LOCAL colour :DWORD LOCAL colRed :DWORD LOCAL colGreen :DWORD LOCAL colBlue :DWORD invoke GetDC, hWnd mov hDC, eax invoke GetPixel, hDC, 10,10 mov colour, eax mov colRed, eax mov colGreen, eax mov colBlue, eax and colRed, 0FFh ; в colRed - красный (число 110) shr colGreen, 8 and colGreen, 0FFh ; в colGreen - зеленый shr colBlue, 16 and colBlue, 0FFh ; в colBlue - синий invoke dwtoa, colRed, addr szBuffer ; в szBuffer - строка '110',0 cmp colRed, 110 jne @F invoke MessageBox, hWnd, SADD("colour is good"),NULL, MB_OK @@: invoke ReleaseDC, hWnd, hDC ret Get_Colour endp