Q&A

  • vector data를 form위에 canvas로 그린후 print하는방법
vector data를 canvas로 form위에 그려놓았습니다..



이 vector data를 print하려고 하는데 방법을 모르겠네요..



아시는분 계시면 꼭좀 답변부탁드립니다.



꼭해야하는건데..다시한번 부탁드립니다.



항상좋은시간 되세요..

1  COMMENTS
  • Profile
    김 성중 1999.12.17 20:26
    이중현 wrote:

    > vector data를 canvas로 form위에 그려놓았습니다..

    >

    > 이 vector data를 print하려고 하는데 방법을 모르겠네요..

    >

    > 아시는분 계시면 꼭좀 답변부탁드립니다.

    >

    > 꼭해야하는건데..다시한번 부탁드립니다.

    >

    > 항상좋은시간 되세요..



    ///다음 예제는 폼을 잡아서 클립보드로 저장하는 부분입니다.

    ///더 좋은 방법이 있으시면 추천좀 해주세요



    //그럼이만

    function XmapCapture(MapForm: TForm; Cap_Width: Integer; Cap_Height: Integer):Integer;

    var

    hdc: Thandle;

    hMemDC: Thandle;

    hBitmap: Thandle;

    sx,sy: integer;

    begin

    sx := 0;

    sy := 0;



    hdc := GetDc(MapForm.Handle);

    HmemDC := CreateCompatibleDC(hdc);



    if cap_Width > MapForm.ClientWidth then

    begin

    cap_Width := MapForm.ClientWidth;

    sx := 0;

    if Cap_Height < MapForm.ClientHeight then

    sy := (MapForm.Clientheight - Cap_Height) div 2;

    end;



    if Cap_Height > MapForm.ClientHeight then

    begin

    cap_Height := MapForm.ClientHeight;

    sy := 0;

    if cap_Width < MapForm.ClientWidth then

    sx := (MapForm.Clientwidth - Cap_Width) div 2;

    end;



    if (cap_Width <= MapForm.ClientWidth) and (Cap_Height <= MapForm.ClientHeight) then

    begin

    sx := (MapForm.Clientwidth - Cap_Width) div 2;

    sy := (MapForm.Clientheight - Cap_Height) div 2;

    end;



    hBitmap := CreateCompatibleBitmap(hdc, Cap_Width,Cap_Height);

    if hBitmap <> 0 then Begin

    SelectObject(hMemDC, hBitmap);

    SetStretchBltMode( hdc, COLORONCOLOR );

    StretchBlt(hMemDC,

    0,0,

    Cap_Width, Cap_Height,

    hdc,

    sx,sy,

    Cap_Width,

    Cap_Height,

    SRCCOPY //Combines the colors of the source and destination

    );



    OpenClipBoard(MapForm.handle);

    EmptyClipboard;

    SetClipBoardData(CF_BITMAP, hBitmap);

    CloseClipboard;

    DeleteDC(hMemDC);

    ReleaseDC(MapForm.Handle, hdc);

    Result := 1;

    end else Begin

    Result := 0;

    end;

    end;