|
그냥 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준거는 몰라서 캡션많으로 찾도록했는뎅;
: 여기서 그림을 해당 윈도우에 그림을 불러와서 그리도록 할려고해요
: 어떻게하는지 설명좀 부탁드립니다
|