C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[15194] Re:Re:Re:[질문] 답변 감사드립니다..이렇게 해보았습니다만..
하느리 [handebug] 1811 읽음    2002-02-01 12:33
안녕하세요.
우선 말씀드릴 부분은 GetTextBuf는 문자열만을 가져오는 함수입니다. 따라서 이것으로 get을 하게 되면 문자열만 가져 온 것이 되고, 이걸 다시 set하면 속성이 없는 문자열만 클립보드로 저장됩니다. 그리고, 클립보드의 포맷에 따라 다르게 처리하여 주어야 할 것 같습니다.

TClipboard *pCB = Clipboard();
TRichEdit *cbRichEdit       = NULL;
Graphics::TBitmap *cbBitmap = NULL;

// get data from clipboard  -------------------------
if ( pCB->HasFormat (CF_TEXT) )
{
    cbRichEdit = new TRichEdit ();
    cbRichEdit->PasteFromClipboard ();
}
else if ( pCB->HasFormat (CF_BITMAP) )
{
    cbBitmap = new Graphics::TBitmap();
    cbBitmap->LoadFromClipboardFormat (CF_BITMAP, pCB->GetAsHandle(CF_BITMAP), 0);
}

// set data to clipboard -----------------------------
if ( cbRichEdit != NULL )
{
    cbRichEdit->CopyToClipboard ();
}
else if ( cbBitmap != NULL )
{
    int            DataHandle;
    HPALETTE       APalette;
    unsigned short MyFormat;
    cbBitmap->SaveToClipboardFormat (MyFormat, DataHandle, APalette);
    pCB->SetAsHandle (MyFormat,DataHandle);
}

죄송한 말씀이지만, 제가 테스트해 본 것이 아니어서, 원하시는 답인지 모르겠네요.
그럼, 즐거운 프로그래밍 하세요.



Jun 님이 쓰신 글 :
: 하느리님...답변 주셔서 정말 감사드립니다.
:
: 하느리님의 말씀을 듣고 c빌더 헬프를 참고해서 아래와 같이 해보았습니다만...클립보드에는 아무것도 들어가지가 않네요..
:
: 클립보드는 텅 비어있는 상태가 됩니다.
:
: unsigned short this_format;
: if(Clipboard()->HasFormat(CF_BITMAP))
:     this_format = CF_BITMAP;
: else if(Clipboard()->HasFormat(CF_DIB))
:     this_format = CF_DIB;
:    //.....중간 생략...각각의 타입을 비교하여 저장해주었습니다.
:
: TextHandle = Clipboard()->GetAsHandle(this_format);  // this_format은 현재 클립보드의 타입을 비교하여 저장된 unsigned short형 (CF_TEXT같은 것...)
:
: Clipboard()->GetTextBuf(backupbuf, sizeof(backupbuf));
:
: SendMessage(hWnd, WM_COPY, 0x00000000, 0x00000000);
:
: Clipboard()->GetTextBuf(buf, sizeof(buf));
:
: if(strcmp(backupbuf, buf))
:     Edit1->Text = buf;
:
: try
: {
:     Clipboard()->SetAsHandle(this_format, TextHandle);
: }
: catch (...)
: {
:     ShowMessage("fail");
: }
:
: 제가 잘못 해준 부분을 지적해주시면 감사하겠습니다.

+ -

관련 글 리스트
15173 [질문] 클립보드에 새로운 내용을 저장 하는 것에 관하여... Jun 1486 2002/01/31
15177     Re:[질문] 클립보드에 새로운 내용을 저장 하는 것에 관하여... 하느리 2310 2002/01/31
15180         Re:Re:[질문] 답변 감사드립니다..이렇게 해보았습니다만.. Jun 1174 2002/01/31
15194             Re:Re:Re:[질문] 답변 감사드립니다..이렇게 해보았습니다만.. 하느리 1811 2002/02/01
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.