|
|
1.1 ! root 1: Sample: StretchBlt Demonstration ! 2: ! 3: Summary: ! 4: ! 5: The STRETCH sample is an easy to use demonstration of the ! 6: StretchBlt API function. The program presents a dialog box ! 7: on the top of the window, and through this dialog box the ! 8: user can manipulate the parameters to StretchBlt. In the ! 9: main window, the source bitmap is displayed on the right ! 10: half of the window, and the destination bitmap is displayed ! 11: on the left half. ! 12: ! 13: More Information: ! 14: ! 15: The source and destination rectangles may be changed ! 16: directly in the dialog, or they may be changed by using the ! 17: direct manipulation objects in the two halves of the window. ! 18: Clicking and dragging the mouse in the upper-left corner ! 19: moves the rectangles; clicking and dragging the mouse in the ! 20: lower-right corner sizes the rectangles. The source direct ! 21: manipulation object is temporarily erased before calling ! 22: StretchBlt so that the top and left edges do not show in the ! 23: destination image. ! 24: ! 25: The raster operation for the StretchBlt call may be changed ! 26: by altering the values in the right-most entry fields. The ! 27: contents are interpreted to be in hexadecimal. There is a ! 28: combo box directly beneath these entry fields that lists all ! 29: of the standard raster operations. If the user selects a ! 30: standard ROP from this combo box, its contents are copied ! 31: into the ROP entry fields and are then used in the ! 32: StretchBlt call. ! 33: ! 34: Several of the raster operations make use of a pattern in ! 35: the destination HDC. For this reason, the program also ! 36: allows the user to select one of the standard pattern ! 37: brushes from a second combo box. This brush is selected into ! 38: the destination HDC just prior to making the StretchBlt ! 39: call. ! 40: ! 41: The effect of the StretchBlt call is also affected by the ! 42: "StretchBlt mode" that has been set for the destination HDC. ! 43: A third combo box allows the user to select from any of the ! 44: standard modes. The difference is most easily observed when ! 45: stretching from a large source rectangle to a small ! 46: destination rectangle. ! 47: ! 48: The "Draw" button may be chosen at any time to cause the ! 49: StretchBlt call to be made. This does not erase the ! 50: background, so that the effect of multiple ROPs on the HDC ! 51: can be observed. Manipulating the source rectangle also ! 52: causes a StretchBlt to occur without erasing the window. ! 53: However, manipulating the destination rectangle erases the ! 54: destination half of the window before the next StretchBlt is ! 55: called. ! 56: ! 57: The following is a list of the Win32 API functions used in ! 58: this sample: ! 59: ! 60: _lclose DispatchMessa LoadAccelerator ReleaseDC ! 61: ge s ! 62: _lopen DPtoLP LoadCursor SelectClipRgn ! 63: _lread EndPaint LoadIcon SelectObject ! 64: AngleArc GetClientRect LocalAlloc SendDlgItemMes ! 65: sage ! 66: BeginPaint GetClipboardD LocalFree SendMessage ! 67: ata ! 68: BitBlt GetDC LocalHandle SetCapture ! 69: ClientToScreen GetDlgItemInt LPtoDP SetClipboardDa ! 70: ta ! 71: CloseClipBoard GetDlgItemTex MessageBox SetCursorPos ! 72: t ! 73: CreateCompatible GetFileSize ModifyWorldTran SetDlgItemInt ! 74: Bitmap sform ! 75: CreateCompatible GetMessage MoveToEx SetDlgItemText ! 76: DC ! 77: CreateDialog GetObject OpenClipboard SetROP2 ! 78: CreateDIBitmap GetStockObjec OpenFile SetStretchBltM ! 79: t ode ! 80: CreatePen GetViewportOr PostMessage SetViewportOrg ! 81: gEx Ex ! 82: CreateRectRgnInd GetWorldTrans PostQuitMessage SetWindowPos ! 83: irect form ! 84: CreateWindow InvalidateRec PtInRect SetWorldTransf ! 85: t orm ! 86: DeleteDC IsWindow Rectangle ShowWindow ! 87: DeleteObject LineTo ReleaseCapture StretchBlt ! 88: ! 89: ! 90:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.