сделал так
Код:
OnPaint();
CDC *pDC=GetDC();
CImage img;
CDC dcm;
dcm.CreateCompatibleDC(NULL);
if(FileExt==CString("bmp"))
{
bm.Attach(LoadImage(0, CString(FileName),IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE));
bm.GetObject(sizeof(BITMAP), &bmp);
GetClientRect(&Rect);
// Перетаскиваю битмап на окно c маштабированием
dcm.SelectObject(&bm);
dcm.DrawState(CPoint(0,0),
CSize(bmp.bmWidth,bmp.bmHeight),bm, DST_BITMAP);
pDC->StretchBlt(0,-scpos_y,Rect.right*uve_x, (Rect.bottom-scpos_y)*uve_y, &dcm,0,0,bmp.bmWidth,bmp.bmHeight,SRCCOPY);
bm.DeleteObject();
}
else
if(FileExt==CString("jpg"))
{
GetClientRect(&Rect);
img.Load(FileName);
HDC hdc;
// Получаю контекст устройства.
hdc=0;
hdc = pDC->GetSafeHdc();
// Показываю jpg-файл.
if(hdc!=0){
dcm.SelectObject(&img);
dcm.DrawState(CPoint(0,0),
CSize(img.GetWidth(),img.GetHeight()),img, DST_BITMAP);
img.StretchBlt(hdc,0,-scpos_y,Rect.right*uve_x,(Rect.bottom-scpos_y)*uve_y,SRCCOPY);
}
img.Destroy();
}
else
{
if(FileExt!=_T(""))
MessageBox(_T("Неверный формат файлов, надо bmp или jpg "));
FileExt=_T("");
}
проблема мерцания исчезла но вот это
Цитата:
И к тому же при передвижении картинки нужно как-то сделать, что бы при подходе к границе картинки дальше её нельзя было двигить?
|
я не знаю как сделать