Anda di halaman 1dari 3

MINISTERUL EDUCAIEI REPUBLICII MOLDOVA

UNIVERSITATEA TEHNIC A MOLDOVEI


Facultatea Calculatoare, Informatic i Microelectronic
Specialitatea : Tehnologii informationale

RAPORT
Disciplina: Programarea in Windows
Lucrare de laborator nr. 2

A efectuat: st. gr. TI-123 Lica Vasile


A verificat: lect. asistent Lisnic Inga

Chisinau 2014
Tema: Interfata GDI

Scopul lucrarii: De studiat primitivele oferite de interfata GDI

Sarcina lucrarii: Scrieti un program care afiseaza in zona client un


desen animat,utilizind toate primitivele GDI.

Realizarea lucrarii:
In acest laborator am utilizat toate primitivele GDI. Liniile,suprafetele pline le-am folosit pentru
a desena un avion care se misca dupa anumite coordonate din zona client a ferestrei. Pe fundalul
ferestrei active am incarcat o imagine bitmap care la fel face parte din primitivele GDI,pentru a
incarca imaginea bitmap am folosit mai multe functii ca LoadImage-care incarca imaginea in
program din resursa folderului personal, de asemenea cu functia CreateCompatibleDC am creat
un dispozitiv de context care este compatibil cu fereastra.Cu ajutorul functiei BitBlt combin
acele 2 dispozitive de context din functia principal si acea in care incarca imaginea bitmap.
Pentru desenarea corpurilor geometrice am folosit functiile ca : RoundRect care deseneaza un
dreptunghi cu colturile rotunjite,Elipse-care deseneaza o elipsa,LineTo-deseneaza o linie,
Rectangle-deseneaza un dreptunghi. Primitiva text tot am utilizat-o la incheierea rularii
programului,toate acestea functii le-am implimentat in mesajul WM_PAINT.

Rezultatul:

Concluzie
Realizind acest laborator am facut cunostinta cu interfata dispozitivului grafic GDI,am inteles
care este rolul acestuia si cind trebuie de folosit. De asemenea am folosit toate primitivele
oferite de interfata GDI pentru realizarea sarcinii.

Anexa 1: functia pentru incarcarea imaginei bitmap.


bool LoadAndBlitBitmap(LPCWSTR szFileName, HDC hWinDC)
{
// Load the bitmap image file
HBITMAP hBitmap;
hBitmap = (HBITMAP)::LoadImage(NULL, szFileName, IMAGE_BITMAP, 0, 0,
LR_LOADFROMFILE);
// Verify that the image was loaded
if (hBitmap == NULL) {
::MessageBox(NULL, __T("LoadImage Failed"), __T("Error"), MB_OK);
return false;
}
// Create a device context that is compatible with the window
HDC hLocalDC;
hLocalDC = ::CreateCompatibleDC(hWinDC);
// Verify that the device context was created
if (hLocalDC == NULL) {
::MessageBox(NULL, __T("CreateCompatibleDC Failed"), __T("Error"), MB_OK);
return false;
}
// Get the bitmap's parameters and verify the get
BITMAP qBitmap;
int iReturn = GetObject(reinterpret_cast<HGDIOBJ>(hBitmap), sizeof(BITMAP),
reinterpret_cast<LPVOID>(&qBitmap));
if (!iReturn) {
::MessageBox(NULL, __T("GetObject Failed"), __T("Error"), MB_OK);
return false;
}
// Select the loaded bitmap into the device context
HBITMAP hOldBmp = (HBITMAP)::SelectObject(hLocalDC, hBitmap);
if (hOldBmp == NULL) {
::MessageBox(NULL, __T("SelectObject Failed"), __T("Error"), MB_OK);
return false;
}
// Blit the dc which holds the bitmap onto the window's dc
BOOL qRetBlit = ::BitBlt(hWinDC, 0, 0, qBitmap.bmWidth, qBitmap.bmHeight,
hLocalDC, 0, 0, SRCCOPY);
if (!qRetBlit) {
::MessageBox(NULL, __T("Blit Failed"), __T("Error"), MB_OK);
return false;
}
// Unitialize and deallocate resources
::SelectObject(hLocalDC, hOldBmp);
::DeleteDC(hLocalDC);
::DeleteObject(hBitmap);
return true;
}

Anda mungkin juga menyukai

  • Lab1 La Programare in Windows
    Lab1 La Programare in Windows
    Dokumen4 halaman
    Lab1 La Programare in Windows
    Micael Coye
    Belum ada peringkat
  • Lab 1 PPE
    Lab 1 PPE
    Dokumen4 halaman
    Lab 1 PPE
    King 79
    Belum ada peringkat
  • Ppe 1
    Ppe 1
    Dokumen5 halaman
    Ppe 1
    Victor Lungu
    Belum ada peringkat
  • Raspunsuri
    Raspunsuri
    Dokumen12 halaman
    Raspunsuri
    Dermengi Ion
    Belum ada peringkat
  • PAM Lab 1
    PAM Lab 1
    Dokumen6 halaman
    PAM Lab 1
    Vladislav Crivenco
    Belum ada peringkat
  • Pam 4
    Pam 4
    Dokumen4 halaman
    Pam 4
    violina
    Belum ada peringkat
  • Lab2 La Programare in Windows
    Lab2 La Programare in Windows
    Dokumen12 halaman
    Lab2 La Programare in Windows
    Andrei Barbalat
    Belum ada peringkat
  • Examen PW
    Examen PW
    Dokumen71 halaman
    Examen PW
    DorinRotaru
    Belum ada peringkat
  • PPE Lab4-5
    PPE Lab4-5
    Dokumen8 halaman
    PPE Lab4-5
    danielploaia
    Belum ada peringkat
  • Proiect de Curs AMOO Druta
    Proiect de Curs AMOO Druta
    Dokumen48 halaman
    Proiect de Curs AMOO Druta
    nn nnn
    Belum ada peringkat
  • Laboratorul Nr1 La Grafica Pe Calculator Gc.
    Laboratorul Nr1 La Grafica Pe Calculator Gc.
    Dokumen4 halaman
    Laboratorul Nr1 La Grafica Pe Calculator Gc.
    Ion Damaschin
    Belum ada peringkat
  • Laboratorul 2 PPE
    Laboratorul 2 PPE
    Dokumen4 halaman
    Laboratorul 2 PPE
    crismaruion
    Belum ada peringkat
  • Examen PPe
    Examen PPe
    Dokumen11 halaman
    Examen PPe
    crismaruion
    100% (2)
  • Lab 1 Somipp
    Lab 1 Somipp
    Dokumen7 halaman
    Lab 1 Somipp
    TîmburŞtefan
    Belum ada peringkat
  • PPE Lab3
    PPE Lab3
    Dokumen6 halaman
    PPE Lab3
    DanuIepuras
    Belum ada peringkat
  • Lab2 Somipp
    Lab2 Somipp
    Dokumen6 halaman
    Lab2 Somipp
    Iov Albu
    Belum ada peringkat
  • Lab1 Pam
    Lab1 Pam
    Dokumen9 halaman
    Lab1 Pam
    Ion Popescu
    100% (2)
  • PAM
    PAM
    Dokumen3 halaman
    PAM
    nicu zuza
    Belum ada peringkat
  • Lab 2 Somipp
    Lab 2 Somipp
    Dokumen5 halaman
    Lab 2 Somipp
    Augusta Bucataru
    Belum ada peringkat
  • SOMIPP Lab6
    SOMIPP Lab6
    Dokumen4 halaman
    SOMIPP Lab6
    Dan
    Belum ada peringkat
  • AMOO Lab2.Use Case
    AMOO Lab2.Use Case
    Dokumen5 halaman
    AMOO Lab2.Use Case
    Dorin Gribincea
    Belum ada peringkat
  • PPE Lab7
    PPE Lab7
    Dokumen14 halaman
    PPE Lab7
    danielploaia
    Belum ada peringkat
  • Examen TIDPP
    Examen TIDPP
    Dokumen3 halaman
    Examen TIDPP
    Rosca Doinita
    Belum ada peringkat
  • Lab 3 Ppe
    Lab 3 Ppe
    Dokumen8 halaman
    Lab 3 Ppe
    Anastasia Gherman
    Belum ada peringkat
  • Somipp Linux 1 UTM
    Somipp Linux 1 UTM
    Dokumen10 halaman
    Somipp Linux 1 UTM
    Cristi Poselețchi
    Belum ada peringkat
  • Pam Exam
    Pam Exam
    Dokumen2 halaman
    Pam Exam
    Culea Constantin
    Belum ada peringkat
  • TW Lab 5
    TW Lab 5
    Dokumen4 halaman
    TW Lab 5
    danielploaia
    Belum ada peringkat
  • TW Lab2
    TW Lab2
    Dokumen4 halaman
    TW Lab2
    Dan
    Belum ada peringkat
  • LL3 (Amoo)
    LL3 (Amoo)
    Dokumen6 halaman
    LL3 (Amoo)
    Eric Semeniuc
    Belum ada peringkat
  • Iepuras Daniel Lab 1 TS
    Iepuras Daniel Lab 1 TS
    Dokumen4 halaman
    Iepuras Daniel Lab 1 TS
    DanuIepuras
    Belum ada peringkat
  • TW Lab4
    TW Lab4
    Dokumen8 halaman
    TW Lab4
    Dan
    Belum ada peringkat
  • Ppe 1-3
    Ppe 1-3
    Dokumen86 halaman
    Ppe 1-3
    Doinita Dumanov
    Belum ada peringkat
  • Lab 2 AMOO
    Lab 2 AMOO
    Dokumen6 halaman
    Lab 2 AMOO
    Gheorghe Felicia
    Belum ada peringkat
  • Somipp Linux 2 UTM
    Somipp Linux 2 UTM
    Dokumen7 halaman
    Somipp Linux 2 UTM
    Cristi Poselețchi
    Belum ada peringkat
  • Amoo 1
    Amoo 1
    Dokumen8 halaman
    Amoo 1
    Liliana Condrea
    Belum ada peringkat
  • Atestarea 1 AC Rezolvat
    Atestarea 1 AC Rezolvat
    Dokumen10 halaman
    Atestarea 1 AC Rezolvat
    Ion Damaschin
    Belum ada peringkat
  • Lab2 PAM
    Lab2 PAM
    Dokumen12 halaman
    Lab2 PAM
    Ion Popescu
    Belum ada peringkat
  • Lab 3
    Lab 3
    Dokumen4 halaman
    Lab 3
    Rosca Doinita
    Belum ada peringkat
  • Raspunsuri La Ppe
    Raspunsuri La Ppe
    Dokumen3 halaman
    Raspunsuri La Ppe
    dasfas
    Belum ada peringkat
  • Laboratorul 1
    Laboratorul 1
    Dokumen11 halaman
    Laboratorul 1
    Дарья Рг
    Belum ada peringkat
  • SOMIPP Lab 5
    SOMIPP Lab 5
    Dokumen5 halaman
    SOMIPP Lab 5
    Augusta Bucataru
    Belum ada peringkat
  • PAm Examen-1
    PAm Examen-1
    Dokumen12 halaman
    PAm Examen-1
    Eric Semeniuc
    Belum ada peringkat
  • Somipp Linux 3 UTM
    Somipp Linux 3 UTM
    Dokumen7 halaman
    Somipp Linux 3 UTM
    Cristi Poselețchi
    Belum ada peringkat
  • AC Lab 4
    AC Lab 4
    Dokumen4 halaman
    AC Lab 4
    DanuIepuras
    Belum ada peringkat
  • Lab 7 Somipp
    Lab 7 Somipp
    Dokumen5 halaman
    Lab 7 Somipp
    Augusta Bucataru
    Belum ada peringkat
  • SOMIPP Lab4
    SOMIPP Lab4
    Dokumen7 halaman
    SOMIPP Lab4
    Dan
    Belum ada peringkat
  • Lab 1 BD
    Lab 1 BD
    Dokumen7 halaman
    Lab 1 BD
    Augusta Bucataru
    Belum ada peringkat
  • Amoo 2
    Amoo 2
    Dokumen8 halaman
    Amoo 2
    AlionaCrigan
    Belum ada peringkat
  • Lab. 3
    Lab. 3
    Dokumen5 halaman
    Lab. 3
    Cristina Florea
    Belum ada peringkat
  • Lab 1 GC
    Lab 1 GC
    Dokumen4 halaman
    Lab 1 GC
    Ion Popescu
    Belum ada peringkat
  • Lab2 (TS)
    Lab2 (TS)
    Dokumen7 halaman
    Lab2 (TS)
    Zeul Hriscei
    Belum ada peringkat
  • Somipp SOMIPP5
    Somipp SOMIPP5
    Dokumen6 halaman
    Somipp SOMIPP5
    Damean Alexandra
    Belum ada peringkat
  • Lab 2 Pam
    Lab 2 Pam
    Dokumen5 halaman
    Lab 2 Pam
    Augusta Bucataru
    Belum ada peringkat
  • Lab 4
    Lab 4
    Dokumen8 halaman
    Lab 4
    Veronica Loghinova
    Belum ada peringkat
  • Capitolul 4 - PW - UTM
    Capitolul 4 - PW - UTM
    Dokumen68 halaman
    Capitolul 4 - PW - UTM
    Dani Lungu
    Belum ada peringkat
  • Lab1 Raport VP
    Lab1 Raport VP
    Dokumen5 halaman
    Lab1 Raport VP
    Valeriy Popa
    Belum ada peringkat
  • Lab 1 Pam
    Lab 1 Pam
    Dokumen6 halaman
    Lab 1 Pam
    Augusta Bucataru
    Belum ada peringkat
  • PW Lab1
    PW Lab1
    Dokumen5 halaman
    PW Lab1
    Cobilas Vasile
    Belum ada peringkat
  • Lab2 Grafica
    Lab2 Grafica
    Dokumen10 halaman
    Lab2 Grafica
    Valeria Ţînţaru
    Belum ada peringkat
  • Laborator1 TMPS
    Laborator1 TMPS
    Dokumen4 halaman
    Laborator1 TMPS
    Ion Cornea
    Belum ada peringkat