|
| БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО! |
|
|
Clipping Output
After the user chooses the Clip option from the menu, the application uses the coordinates of the rectangle the user created to define a clipping region. After defining the clipping region and selecting it into the application's device context, the application redraws the bitmapped image. The application performs these tasks, as follows.
/* 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;
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
Отсечение Выхода
После того, как пользователь выберет опцию Клипа из меню, приложение использует координатам прямоугольника пользователя созданный, чтобы определять вырезать область. После определять отсечения области и выбора это в прикладной контекст устройства, приложение перерисовывает образ bitmapped. Приложение выполняет эти задачи, следующим образом.
/* Эти переменные необходимы для clipping. */ статическая ТОЧКА ptUpperLeft; статическая ТОЧКА ptLowerRight; статическая ТОЧКА aptRect[5]; статическая ТОЧКА ptTmp; статические ТОЧКИ ptsTmp; статический BOOL fDefineRegion; статический BOOL fRegionExists; статический HRGN hrgn; статический RECT rctTmp; int i; случай WM_COMMAND: ключ (wParam) { случай IDM_CLIP: hdc = GetDC(hwnd); /* * Извлеките прикладной прямоугольник клиента и краски * с по умолчанию щеткой (белый).
*/ GetClientRect(hwnd, &rctTmp); FillRect(hdc, &rctTmp, GetStockObject(WHITE_BRUSH)); /* Используйте координаты rect, чтобы определять отсечение region. */ hrgn = CreateRectRgn(aptRect[0].x, aptRect[0].y, aptRect[2].x, aptRect[2].y); SelectClipRgn(hdc, hrgn); /* Передача (сделайте) побитовое отображение в вырезанный rectangle. */ BitBlt(hdc, 0, 0, bmp.bmWidth, bmp.bmHeight, hdcCompatible, 0, 0,
SRCCOPY); ReleaseDC(hwnd, hdc); прерывание;
|
|
|
|
| |