|
안녕하세요~~~~~~또다시 이렇게 질문을 올리게 되었습니당.... m(- -)m
즐거운 주말 보내셨나요??? 전.... 이것땜시 잠을 설쳤답니당...... - -;
다름이 아니라 우선 구조가...
---------- 전송 |------------| 복사 |----------- |
- Main - <======= |MainmemDC | <========= | virmemDC |
- 화면 - | | | |
- -------- |----------- | |-----------|
^ ^
이미지로드 | | 이미지로드
|-------------| |-------------|
| Main용이미지 | | 특정이미지 |
|-------------| |-------------|
왜 메모리DC를 두개를 만들었냐면요 특정이미지에 마우스로 클릭하면 팝업의 서브폼이 열러 거기에서 버턴을 클릭하면 선택한 이미지가 위로 회전하고 아래로 회전가능하게 하고 싶어서....
그러려면 MaimmemDC 랑 virmemDC 에서 변화가 있으면 MainmemDC 변환시켜 메인화면에 전송...
이런식으로 하고 싶은데.... 메인DC 랑 virDC의 핸들이 안잡혀요....우선 소스가...
//----------------------------
TMainForm *MainForm;
TPoint Cam_lst[] = {
( Point)( 269, 151),
( Point)( 354, 410),
( Point)(NULL, NULL)
};
//---------------------------------------------------------------------------
__fastcall TMainForm::TMainForm(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::FormPaint(TObject *Sender)
{
TPoint *list;
BOOL res = FALSE;
int sx, sy, cx, cy;
// 메인용 화면 로드
scr_bmp = (HBITMAP)LoadImage(0, "Image\\Map_Test.BMP",IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
// 메인위로 표시할 화면 로드
cam_bmp = (HBITMAP)LoadImage(0, "Image\\BlueCam_Img.BMP",IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
GetObject(scr_bmp,sizeof(BITMAP),&scr_info);
GetObject(cam_bmp,sizeof(BITMAP),&cam_info);
scrdc = CreateCompatibleDC( NULL);
virdc = CreateCompatibleDC( NULL); <--------------virmemDC도 작성해야한는지 궁금
SelectObject(scrdc, scr_bmp);
//SelectObject(virdc, cam_bmp);
// 전송을 메인DC에 복사하고 싶은데 모르겠어요...........핸들을 어떻게...--;
res = BitBlt( ?????????, 0 ,0 , scr_info.bmWidth,scr_info.bmHeight,scrdc,0,0,SRCCOPY);
list = &Cam_lst[ 0];
do {
SelectObject(scrdc, cam_bmp);
// 전송을 메인DC에 복사하고 싶은데 모르겠어요...........--;
BitBlt( ????????????????,list->x, list->y, cam_info.bmWidth, cam_info.bmHeight, scrdc, 0, 0, SRCC OPY);
list++;
} while(( list->x != NULL)||( list->y != NULL));
// Image1->Canvas->CopyRect(Rect(0,0,Image1->Picture->Width,Image1->Picture->Height),
// Image1->Picture->Bitmap->Canvas,Rect(0,0,scr_info.bmWidth,scr_info.bmHeight));
Image1->Refresh();
DeleteDC(scrdc);
// DeleteDC(camdc);
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::FormDestroy(TObject *Sender)
{
if ( cam_bmp != NULL) {
DeleteObject( cam_bmp);
}
if ( scr_bmp != NULL) {
DeleteObject(scr_bmp);
}
}
//----------------------------------------------------------------
void __fastcall TMainForm::Image1MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
TPoint *cam_list;
if(Button == mbRight){
// 팝업처리작성
}
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::CamTestClick(TObject *Sender)
{
CamForm->Show();
}
//---------------------------------------------------------------------------
이렇게 하면 되는건지 확실치도 않고.....
?????? 란에 메일이미지 핸들을 잡아주면 이미지가 뜨긴 뜨는데..... 서브폼에서 버턴처리가 가능해지는지...이것도 궁금하고....
|