Output Kliping
Setelah pengguna mengklik Klip dari menu, aplikasi menggunakan koordinat persegi panjang yang dibuat pengguna untuk menentukan wilayah kliping. Setelah menentukan wilayah kliping dan memilihnya ke dalam konteks perangkat aplikasi, aplikasi menggambar ulang gambar bitmapped. Aplikasi melakukan tugas-tugas ini, sebagai berikut.
// These variables are required for clipping.
static POINT ptUpperLeft;
static POINT ptLowerRight;
static POINT aptRect[5];
static POINT ptTmp;
static POINTS ptsTmp;
static BOOL fDefineRegion;
static BOOL fRegionExists;
static HRGN hrgn;
static RECT rctTmp;
int i;
case WM_COMMAND:
switch (wParam)
{
case IDM_CLIP:
hdc = GetDC(hwnd);
// Retrieve the application's client rectangle and paint
// with the default (white) brush.
GetClientRect(hwnd, &rctTmp);
FillRect(hdc, &rctTmp, GetStockObject(WHITE_BRUSH));
// Use the rect coordinates to define a clipping region.
hrgn = CreateRectRgn(aptRect[0].x, aptRect[0].y,
aptRect[2].x, aptRect[2].y);
SelectClipRgn(hdc, hrgn);
// Transfer (draw) the bitmap into the clipped rectangle.
BitBlt(hdc,
0, 0,
bmp.bmWidth, bmp.bmHeight,
hdcCompatible,
0, 0,
SRCCOPY);
ReleaseDC(hwnd, hdc);
break;
}
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk