Взять битмап формы...
Проблема такая: нужно получить текущий битмап, связанный с формой. Еще предпочтительнее получить только битовый массив окна в чистом виде(те даже не HBITMAP, а битовую последовательность).Далее
нужно будет по биткарте пройтись циклом.Дублировать содержимое крайне нежелательно.Сразу оговорюсь, что предложения
ходить по битмапу через КАНВА->ПИКСЕЛ(x,y) не пройдет - слишком тормозно , по эксперименту знаю что просто сравнение байтов по XOR пашет много быстрее.
Вот...Те задача-имею старый битмап, надо сравнить с текущим, и как можно шустрее.
Заранее благодарный Dimas.
(Допустим имя формы frm)
{
...
HDC hdc,hmemdc;
HBITMAP hb;
BITMAP frm_bitmap;
int w=frm->Width;
int w=frm->Height;
hdc=GetDC(frm->Handle);
hmemdc=CreateCompatibleDC(hdc);
hb = CreateCompatibleBitmap(hmemdc,w,h);
SelectObject(hmemdc,hb);
BitBlt(hmemdc,0,0,w,h,hdc,w,h,SRCCOPY);
GetObject(hb,sizeof(BITMAP),frm_bitmap);
//************************************//
Теперь у тебя есть структурка frm_bitmap,
которая описывается так:
typedef struct tagBITMAP { // bm
LONG bmType;
LONG bmWidth;
LONG bmHeight;
LONG bmWidthBytes;
WORD bmPlanes;
WORD bmBitsPixel;
LPVOID bmBits; // <- это указатель на
// растр (но он может быть записан по
//разному - это уже сам разберешь
} BITMAP;
Писал по памяти так что некоторые подробности не помню, надеюсь сам исправишь если что не так