2009-11-24 10 views
0

J'ai une affectation en utilisant MFC qui est une langue complètement étrangère à moi. Je dois pouvoir télécharger Image1, et Image2 dans 2 commandes d'image. Et en utilisant un curseur: quand il est à l'extrême gauche, vous voyez Image1 dans un troisième contrôle d'image, quand il est à l'extrême droite, vous voyez Image2. N'importe où entre vous devriez voir une transition.fonction visibile MFC

J'ai la plupart de l'affectation vers le bas, la seule chose qui me reste est cette transition. J'ai une idée de ce que je dois faire et j'utilise une fonction similaire à Allegro. Je n'arrive juste pas à trouver la syntaxe pour MFC.

Ceci est probablement aussi faux que possible, donc toute aide serait grandement appréciée. Merci!

J'ai:

int nPos = m_Slider.GetPos(); 
int nWidth1 = Image1.GetWidth(); 
int nHeight1 = Image1.GetHeight(); 
int nWidth2 = Image2.GetWidth(); 
int nHeight2 = Image2.GetHeight(); 
int nWidth3 = (nWidth1 +nWidth2)/2; 
int nHeight3 = (nHeight1 + nHeight2)/2; 
int nPixel1; 
int nPixel2; 
int nPixel3; 
int i1, i2, i3, j1, j2, j3; 
Image3.Create(nWidth3, nHeight3, 24); 
for(i3=0; i3 < nWidth3; i3++){ 
    for(j3=0; j3 < nHeight3; j3++){ 
     i1 = i3 * nWidth1/nWidth3; 
     i2 = i3 * nWidth2/nWidth3; 
     j1 = j3 * nHeight1/nHeight3; 
     j2 = j3 * nHeight2/nHeight3; 
     getpixel(nPixel1, i1, j1); 
     getpixel(nPixel2, i2, j2); 
     putpixel(nPixel3, i3, j3); 

     nPixel3 = (nPixel1 * (100-nPos) + nPixel2*nPos) *Image3.visible/100; 
    } 
} 

Répondre

0

Vous avez besoin d'un contexte de périphérique (DC) pour les photos et la transition. Chargez les images dans le DC (vous pouvez le faire en arrière-plan en utilisant un CMemDC), puis vous pouvez calculer la transition et le peindre dans le troisième DC. Le DC prend en charge la fonctionnalité que vous souhaitez (GetPixel, etc.)