Bir DC alanı yaratılığında kalem, fırça, font gibi çizim bileşenleri default değerlerle doldurulmuştur. Kalem, fırça, font gibi çizim bileşenleri aslında pek çok parametreye sahiptir. Win32′de bu çizim bileşenleri ayrı handle alanlarına sahiptir.
Çizim işlemlerinde kullandığımız handle alanına sahip bu bileşenlere GDI nesneleri denir. GDI nesneleri nesneye özgü CreateXXX fonksiyonlarıyla yaratılır ve DeleteObject fonksiyonuyla boşaltılır.
GDI nesnelerinin silinmesi unutulursa process’in sonlanmasıyla problemsiz bir biçimde silinir. Bir GDI nesnesi yaratıldıktan sonra kullanılabilmesi için DC handle alanına bağlanması gerekir. Bu bağlantı SelectObject API fonksiyonuyla yapılır.
SelectObject API fonksiyonu her türlü GDI nesnesini seçebilir. Prototipi şöyledir:

HGDIOBJ SelectObject(HDC hDC, HGDIOBJ hgdiObj);

Aslında bütün GDI nesnelerinin handle alanlarının başlık kısmı aynıdır. Bu başlık kısmına bakılarak nesnenin hangi GDI nesnesi olduğu anlaşılır. GDI nesnelerinin yalnızca bir kez örneğin WM_CREATE mesajı içerisinde yaratılmaları normal bir uygulamadır. Ancak tabii WM_PAINT mesajı içerisinde her defasında SelectObject fonksiyonuyla bağlanmaları gerekir.