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
[51773] Re:핸들구하고 dc구해서 해당 윈도우dc에 그림 넣기
장성호 [nasilso] 2341 읽음    2008-01-02 02:01
그냥 API로 그리면 됩니다.

샘플처럼  BitBlt 나 StretchBlt 로...
VCL의 Canvas나 Graphics class도
draw관련 메소드들은.. 결국은 모두 api를 호출합니다.

//샘플
void __fastcall TForm2::Button1Click(TObject *Sender)
{
    HWND hWnd=FindWindow(NULL,"Form1");
    HDC dc=GetDC(hWnd);

    MoveToEx(dc,10,10,NULL);
    LineTo(dc,100,100);                                         //1.선그리기

   TRect rc=Rect(100,100,200,150);
    DrawText(dc,"test",4,&rc,DT_CENTER    );        //2.Text 출력
    HDC dc2=GetDC(Button2->Handle);
    int wid=Button2->Width;
    int hei=Button2->Height;
    BitBlt(dc,200,200,wid,hei,dc2,0,0,SRCCOPY);  //3. Button의 이미지를 그리기

    wid=Image1->Width;
    hei=Image1->Height;

    BitBlt(dc,0,0,wid,hei,Image1->Picture->Bitmap->Canvas->Handle,0,0,SRCCOPY); //4. Bitmap의 내용을 draw
    BitBlt(dc,0,200,wid,hei,Image1->Canvas->Handle,0,0,SRCCOPY);  //5. TImage의 내용을 draw
    StretchBlt(dc,200,200,wid*2,hei*2,Image1->Canvas->Handle,0,0,wid,hei,SRCCOPY); //6. StretchBlt 로 그리기
}
//---------------------------------------------------------------------------

문론 FindWindow로 찾은 Form1은 어떤 Application이어도 상관없구요
그럼...




완전초보 님이 쓰신 글 :
: 다른프로그램의 핸들구하고 해당윈도우 디시를 얻어서 그 디시에
: 그림을 뿌릴려고하는데요 어떻게하는지 모르겟네요
: 파인드윈도우해서 핸들 구한다음 해당윈도우 디시는
: 겟디시로 그냥 읽어오면되는건가요?
: 거기에 그림을 그릴려고하는데 해당 디시에 그림을 넣는법을 모르겠네요
: 그림을 넣을 방법은없나요?
: HWND hwnd = FindWindow(NULL,"해당 프로그램 캡션"):
: HDC hdc = GetDC(hwnd);
:
: 이방식 맞죠? NULL준거는 몰라서 캡션많으로 찾도록했는뎅;
: 여기서 그림을 해당 윈도우에 그림을 불러와서 그리도록 할려고해요
: 어떻게하는지 설명좀 부탁드립니다

+ -

관련 글 리스트
51772 핸들구하고 dc구해서 해당 윈도우dc에 그림 넣기 완전초보 1302 2008/01/01
51773     Re:핸들구하고 dc구해서 해당 윈도우dc에 그림 넣기 장성호 2341 2008/01/02
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.