剪切输出

【勇芳软件工作室】汉化HomePreviousNext

用户从菜单中选择剪辑选项后,应用程序将使用用户创建的矩形坐标来定义裁剪区域。在定义裁剪区域并将其选择到应用程序的设备上下文中之后,应用程序会重新绘制位图。应用程序执行这些任务,如下所示。

/ *这些变量是剪切所必需的。*/

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:

开关(wParam){

case IDM_CLIP:

hdc = GetDC(hwnd);

/*

*检索应用程序的客户端矩形和油漆

*带有默认(白色)画笔。

*/

GetClientRect(hwnd, &rctTmp);

FillRect(hdc, &rctTmp, GetStockObject(WHITE_BRUSH));

/ *使用直角坐标来定义裁剪区域。*/

hrgn = CreateRectRgn(aptRect[0].x, aptRect[0].y,

aptRect[2].x, aptRect[2].y);

SelectClipRgn(hdc, hrgn);

/ *将位图转移(绘制)到剪切的矩形中。*/

BitBlt(hdc,

0, 0,

bmp.bmWidth,bmp.bmHeight,

hdcCompatible,

0, 0,

SRCCOPY);

ReleaseDC(hwnd, hdc);

break;