|
API
BOOL BoolPaint(HWND hDlg, WPARAM wParam, LPARAM lParam) |
| { |
| int *ix = (int *)(&buf[18]); |
| int *iy = (int *)(&buf[22]); |
| HBITMAP MyBitmap,OldBitmap; |
|
| hdc = BeginPaint(hDlg,&ps); |
| MemDC=CreateCompatibleDC(hdc); |
| //메모리DC를 만든다 |
| if(ibuttor%2 == 0) |
| { |
| MyBitmap=CreateCompatibleBitmap(hdc, *ix,*iy);//크기를 정하고 |
| OldBitmap=(HBITMAP)SelectObject(MemDC,MyBitmap); |
| } |
| else |
| { |
| MyBitmap=CreateCompatibleBitmap(hdc,*iy,*ix); |
| OldBitmap=(HBITMAP)SelectObject(MemDC,MyBitmap); |
| } |
|
| if(*ix%2 == 0) |
| { |
| *ix-=1; |
| } |
| switch(ibuttor) |
| { |
| case 0: |
| switch(ehd) |
| { |
| case 0: |
| Odown(0,*ix,*iy,0); |
| break; |
| case 1: |
| Rdown(0,*ix,*iy,0); |
| break; |
| } |
| break; |
| } |
| if(ehdghks == 0) |
| { |
| if(ibuttor%2 == 0) |
| { |
| BitBlt(hdc,40,70,*ix,*iy,MemDC,0,0,SRCCOPY); |
| //hdc에 40,70에 메모리DC에 있는 값을 가져다 쓴다 |
| } |
| else |
| { |
| BitBlt(hdc,40,70,*iy,*ix,MemDC,0,0,SRCCOPY); |
| } |
| } |
| else |
| { |
| if(ibuttor%2 == 0) |
| { |
| StretchBlt(hdc,40,70,(*ix)*2,(*iy)*2,MemDC,0,0,*ix,*iy,SRCCOPY); |
| } //메모리DC에 *ix,*iy크기의 영역을 (*ix)*2,(*iy)*2크기의 |
| // 영역에 복사 (확대) |
| else |
| { |
| StretchBlt(hdc,40,70,(*iy)*2,(*ix)*2,MemDC,0,0,*iy,*ix,SRCCOPY); |
| } |
| } |
| DeleteDC(MemDC); |
|
| EndPaint(hDlg,&ps); |
| return TRUE; |
| } |
|
|
|
|
|
| void Odown(int spx,int endx,int spy,int endy) |
| { |
| int inum,isum; |
| int im = 54; |
| int max; |
|
| for(isum = spy;isum >= endy;isum--) |
| { |
| for(inum = spx;inum <= endx;inum++) |
| { |
| if(tjs == 0) |
| { |
| SetPixel(MemDC,inum,isum,RGB(buf[im+2],buf[im+1],buf[im])); |
| //메모리DC에 픽셀로 그림은 그려둔다 |
| } |
| else |
| { |
| max = ((im+2)+(im+1)+im)/3; |
| SetPixel(MemDC,inum,isum,RGB(buf[max],buf[max],buf[max])); |
| } |
| im+=3; |
| } |
| } |
|
}
|
|
| RFID |
|
| 비트맵 뷰어 제작 현재 회전,반전, 흑백,확대,불러오기 가능 |
| 내일 작업 마우스 사용 부분 확대 축소 |