Азбука программирования в Win32 API


Азбука программирования в Win32 API - стр. 150


RECT rLittleRecll = {0, 0. CX_ICON, CYJCON};

static POINT Point, pHotSpot;

static BOOL bCapture = FALSE;

static int nXBordcr, nYBordcr. nYCaption;

switch(Message) {

case WM_CREATE: hDC = GctDC(hWnd);

hlmageList - IniageListJJreate(CXJCON, CYJCON, ILCJvIASK, 3, 3); ImageList_AddIcon(hImageList, Loadlmage(hlnst, "Mixtree.ico",

IMAGEJCON, 0, 0, LRJJ3ADFROMFILE)); ImageList_AddIcon(hImageList, Loadlmage(hlnst, "Pview95.ico",

IMAGEJCON, 0, 0, LRJ.OADFROMFILE)); nXBordcr = GetSystemMclrics(SM_CXBORDER); nYBorder = GetSystemMctrics(SMJCYBORDER); nYCaption = GetSystemMetrics(SMJCYCAPTION); return 0;

case WMJ'AINT:

hPaintDC = BcginPaint(hWnd, &PaintStruc(); for(i = 0; i < 2; i++) Image-ListJ)raw(hImageList, i, hPaintDC, i * CXJCON, 0,

ILD_NORMAL); EndPaint(hWnd. &PaintStruct); return 0;

case WMJ.BUTTONDOWN: Point.x = LOWORD(lParam); Point.y = HIWORD(lParam); if(PtInRect(&rBigRect, Point)) >

SetCapture(hWnd); bCapture = TRUE; if(Pt!nRect(&rLittlcRectI, Point))

i = 0; else

i= I;

pHotSpot.x = Point.x - i * CXJCON; pHotSpot.y = Point.y;

ImageListJ3eginDrag(hImageList, i, pHotSpot.x, pHotSpot.y); ImageListJJragEnterfhWnd, Point.x + nXBordcr, Point.y + nYBorder +

nYCaption); }

return 0;

case WMJVIOUSEMOVE: iffbCapture) ImageListJ>agMove(LOWORD(!Param), HIWORD(lParam) + nYBorder

-i- nYCaption); return 0;

179

case WM_LBUTTONUP: if(bCapture)

ImageListJSndDragO;

ImageList_DragLeave(hWnd);

ImageListJ>aw(hImageList, i, hDC, LOWORD(lParam)- pHotSpot.x,

HIWORD(lParam) - pHolSpot.y, ILDJMORMAL); ReleaseCapturc(); bCapture = FALSE;

}

return 0;

case WM_DESTROY: ReleascDC(hWnd, hDC); ImageList_Destroy(hImageList); PostQuitMessage(O); return 0;

\ j

return DefWindowProc(hWnd,Message,wParam, IParam); >

Вид окна до произведения операций «drag-and-drop» показан на рис. 16. На рис. 17 приведен вид этого же окна после выполнения нескольких операций копирования иконок.

Мне бы хотелось, чтобы читатель обратил внимание на возможность лег­кого перемещения и копирования изображений. Что бы пришлось делать в том случае, если бы здесь не использовался список изображений?




Начало  Назад  Вперед



Книжный магазин