|
|
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.