viestards ([info]viestards) rakstīja [info]progplace kopienā,
@ 2004-04-26 16:41:00

Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Device contexts
Daudziem lietotājiem patīk smukumi, kas palīdz izcelt formas saturu, taču ne visi zin, kā tos izveidot.
Win32 grafikas veidošanai, vai tā būtu vienkārša līnija, vai liela bilde, lieto ierīču kontekstus (Device Contexts, turpmāk DC).

DC ir struktūra, kas definē grafisko ierīču kopumu un ar tām saistītos atribūtus. Parasti zīmēšanas funckijas tiek izmantotas WM_PAINT un ar to saistītajās funckijās. (OnPaint iekš MFC)
Apakšā redzamajā MFC piemērā formā tiek uzzīmētā bilde.
Otrs DC parasti tiek izmantots lai novērstu raustīšanās problēmu pārzīmējot formu.
Ja kādam kas ir piebilstams, vai man gadījusies kāda kļūme, lūdzu komentāros.


CDC* pDC=this->GetDC();
CBitmap pBitmap;
CRect rect;
GetClientRect(rect);

//ielaadeejam bitmapu
pBitmap.Attach(LoadImage(NULL, "setupdlg.bmp", IMAGE_BITMAP, 0, 0,
LR_LOADFROMFILE | LR_DEFAULTSIZE));

CDC hdcSrc;

hdcSrc.CreateCompatibleDC(pDC);
// ieguustam patreizeejo bildi, noder, lai izsargaatos no raustiisanaas (flicker)
CBitmap* hbmSrcT = (CBitmap*) hdcSrc.SelectObject(&pBitmap);

// ziimeejam bitmapu
pDC->BitBlt(0, 0, rect.right,rect.bottom, &hdcSrc,
0, 0, SRCCOPY);
// atgriezam veco objektu atpakalj un atbrīvojam resursus.
hdcSrc.SelectObject(hbmSrcT);
hdcSrc.DeleteDC();


(Lasīt komentārus)

Nopūsties:

No:
Lietotājvārds:
Parole:
Ievadi te 'qws' (liidzeklis pret spambotiem):
Temats:
Tematā HTML ir aizliegts
  
Ziņa:
Neesi iežurnalējies. Iežurnalēties?