Red de conocimiento informático - Conocimiento sistemático - Pídale a un experto en programación que me diga cómo cargar vc 6.0. Proporcione el código completo. Si proporciona libros relevantes, puede obtener puntos adicionales.

Pídale a un experto en programación que me diga cómo cargar vc 6.0. Proporcione el código completo. Si proporciona libros relevantes, puede obtener puntos adicionales.

void CHelloDialog::OnPaint()

{

// TODO: Agregue el código del controlador de mensajes aquí

///////// Debajo de uno de las tres situaciones tendrán efectos diferentes (solo puede existir una)////////

//CPaintDC DC(this);//Si se usa esta frase lo que se obtiene es el DC del cuadro de diálogo y la imagen se dibujará en el cuadro de diálogo.

CPaintDC DC(GetDlgItem(IDC _duststrom 1)); //Utilice esta oración para obtener el DC del control de imagen y la imagen se dibujará en el control.

//CDC DC;

//DC . m _ hDC =:: GetDC(NULL); //Si usas estas dos oraciones, obtendrás el DC del Se dibujará una imagen en la pantalla////////////////////////////////////////. ////// ////////////////.

CRect rcclient

GetDlgItem(IDC_duststrom 1)-gt;GetClientRect(amp;cliente RC);

CDC memdc

memdc. CreateCompatibleDC(amp;DC);

Mapa de bits CBitmap;

Mapa de bits. CreateCompatibleBitmap(&dc,rcclient.Width(),rcclient.height());

memdc. seleccionar objeto (amp mapa de bits);

CWnd::DefWindowProc(WM_PAINT, (WPARAM)memdc.m_hDC,

CDC maskdc

maskdc. CreateCompatibleDC(amp;DC);

CBitmap máscarabitmap

máscarabitmap. CreateBitmap(rcclient.Width(), rcclient.Height(), 1, 1, NULL);

maskdc. Seleccione objeto(ampmaskbitmap);

maskdc. BitBlt(0, 0, rcclient. Ancho(), rcclient. Altura(), ampmemdc,

rcclient.left, rcclient.top, src copy

CBrush brush <); /p>

Cepillo. CreatePatternBrush(amp;m_BMP);

Washington. fill rect(cliente RC y pincel);

Washington. BitBlt(rcclient.left, rcclient.top, rcclient.Width(), rcclient.Height(), ampmemdc, rcclient.left, rcclient.top, src paint);

Pincel.

eliminar objeto();

//No llamar a CDialog::OnPaint() para dibujar mensajes

}

#Define THUMWIDTH 180

#Definir altura 180

//Cargar imágenes Jpg y Bmp, ¡esta función es el código clave! ! ! ! ! ! !

mapa hbit CHelloDialog::cargar imagen(CString mFile)

{

CString pFSize

WCHAR wpath[MAX _ PATH];

MultiByteToWideChar(CP_ACP, 0, mFile, -1, wpath, MAX_PATH

IPicture * pPic

OleLoadPicturePath(wpath, NULL, NULL, NULL, IID_IPicture, (LPVOID *) amp; pPic);

if (pPic==NULL) devuelve NULL

HBITMAP hPic = NULL

pPic- gt; get_Handle((UINT *)&hPic);

long nWidth = THUMWIDTH

long nHeight = THUMHEIGHT

龙 mWid, mHei

p>

pPic- gt; get_Height(amp; mHei);

pPic- gt; obtener ancho (ampmWid);

mapa hbit HPI cret = (mapa hbit)copiar IMAGEN(hPic, IMAGE_BITMAP, nWidth, nHeight, LR_COPYDELETEORG);

HBRUSH HBRUSH border =::crear pincel sólido(RGB(192, 192, 192));

HBRUSH hBrushBk =::crear sólido brush(RGB(255, 255, 255));

RECT borde RC;

borde RC izquierdo = borde RC superior = 0; .right = THUMWIDTH

RC border .thum height;

const float frat io =(float)thum height/thum width;

p>

int XDest, YDest, nDestWidth, nDestHeight

const float FIM gratio = (float)mHei/mWid;

if (FIM gration gt; Fradio)

{

nDestWidth =(altura del pulgar/FIM gratio);

XDest =(THUMWIDTH-nDestWidth)/2;

YDest = 0;

nDestHeight = THUMHEIGHT

}

Otro

{

XDes

t = 0;

nDestWidth = THUMWIDTH

nDestHeight =(THUMWIDTH * FIM gratio);

YDest =(thum height-nDestHeight)/2;

p>

}

CClientDC cdc(este);

HDC HDC =::CreateCompatibleDC(CDC . m_HDC);

mapa de hbit BM = CreateCompatibleBitmap(CDC . m _ hDC, THUMWIDTH, altura de thum);

mapa de hbit pOldBitmapImage = (mapa de hbit)seleccione objeto (hDC, BM)

* relleno; rect(hDC amp; rcBorder, hBrushBk);

* frame rect (hDC amp; rcBorder, hBrushBorder);

hbit map hbm return = (hbit map):: seleccionar objeto ( hDC, pOldBitmapImage );

CDC hdcSrc, hdcDst

hdcSrc. CreateCompatibleDC(NULL);

hdcDst. CreateCompatibleDC(NULL);

//Carga el mapa de bits en la memoria DC

cbit map * hbmSrcT = (cbit map *)hdcSrc. seleccionar objeto(HPI cret);

mapa cbit * hbmDstT = (mapa cbit *)hdc dst. seleccionar objeto(retorno hbm);

hdcDst. BitBlt(XDest, YDest, nDestWidth, nDestHeight&hdcSrc, 0, 0, SRCCOPY);

pOldBitmapImage = (HBITMAP)seleccionar objeto(hDC dst. m_hDC, BM);

DeleteDC(hDC );

eliminar objeto(hBrushBorder);

eliminar objeto(hBrushBk);

Devolver pOldBitmapImage

}

//Agregar código en la función de carga:

if( m_bmp.m_hObject!= NULL)//Juez

m_bmp. eliminar objeto();

////////Cargar imagen

hbit map hbmp = cargar imagen("e:\\picture.*");

m_bmp. Adjunto(hbmp);