11.04.2014 Views

Advanced MFC Programming

Advanced MFC Programming

Advanced MFC Programming

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Chapter 5. Common Controls<br />

overridden function shows how to load correct bitmap by examining nIDCtl and lpDrawItemStruct-<br />

>itemData:<br />

void CCCtlDlg::OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct)<br />

{<br />

CBitmap bmp;<br />

CBitmap *ptrBmpOld;<br />

CDC *ptrDC;<br />

CDC dcMemory;<br />

CRect rect;<br />

BITMAP bm;<br />

……<br />

if(nIDCtl == IDC_LIST)<br />

{<br />

switch(lpDrawItemStruct->itemData)<br />

{<br />

case LIST_SMILE_1:<br />

{<br />

bmp.LoadBitmap(IDB_BITMAP_SMILE_1);<br />

break;<br />

}<br />

case LIST_SMILE_2:<br />

{<br />

bmp.LoadBitmap(IDB_BITMAP_SMILE_2);<br />

break;<br />

}<br />

case LIST_SMILE_3:<br />

{<br />

bmp.LoadBitmap(IDB_BITMAP_SMILE_3);<br />

break;<br />

}<br />

case LIST_SMILE_4:<br />

{<br />

bmp.LoadBitmap(IDB_BITMAP_SMILE_4);<br />

break;<br />

}<br />

}<br />

}<br />

if(nIDCtl == IDC_COMBO)<br />

{<br />

switch(lpDrawItemStruct->itemData)<br />

{<br />

case COMBO_BUTTON:<br />

{<br />

if(lpDrawItemStruct->itemState & ODS_SELECTED)<br />

{<br />

bmp.LoadBitmap(IDB_BITMAP_BUTTON_SEL);<br />

}<br />

else<br />

{<br />

bmp.LoadBitmap(IDB_BITMAP_BUTTON_UNSEL);<br />

}<br />

break;<br />

}<br />

case COMBO_BIGSMILE:<br />

{<br />

if(lpDrawItemStruct->itemState & ODS_SELECTED)<br />

{<br />

bmp.LoadBitmap(IDB_BITMAP_BIG_SMILE_1);<br />

}<br />

else<br />

{<br />

bmp.LoadBitmap(IDB_BITMAP_BIG_SMILE_2);<br />

}<br />

break;<br />

}<br />

}<br />

}<br />

116

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!