i have to use the samples you gave me.
i had add all the fonts in the system to the owner created combox, and
there must be memory leaks exists. but i can't find. help!
the code in the ue_DrawItemStruct: (i am not sure whether i can put my pbl
here)

long rtn
ulong lf, oldlf

n_api.CopyMemory(lstr_dis, drawitemstruct, 48)
if lstr_dis.ctltype <> 3 then return
rtText = lstr_dis.rcItem
///////////////////////////////////////////////////////////////
///////////////////Define font///////////////////////////////////
lstr_font.lfweight = 400
lstr_font.lfheight = -18
lstr_font.lfPitchAndFamily = '2'
lstr_font.lfClipPrecision = Char(2)
lstr_font.lfOutPrecision = Char(1)
lstr_font.lfQuality = Char(1)
lstr_font.lfcharset = 'gb2312charset!'
///////////////////////////////////////////////////////////////

rtn = Send( il_HwndCb, n_api.CB_GETLBTEXTLEN, lstr_Dis.ItemId, 0 )
facename = Space( rtn )

SendString( il_HwndCb, n_api.CB_GETLBTEXT, lstr_dis.ItemId, facename )

if n_api.of_BitAnd(lstr_dis.itemState, ODS_SELECTED) = ODS_SELECTED then
n_api.FillRectEx(lstr_dis.hdc, rtText, n_api.GetSysColor(
n_api.COLOR_HIGHLIGHT ))
n_api.SetTextColor(lstr_dis.hdc, rgb(255,255,255))
else
n_api.FillRectEx(lstr_dis.hdc, rtText, rgb(255,255,255))
n_api.SetTextColor(lstr_dis.hdc, 0)
end if

n_api.SetBkMode( lstr_dis.hdc, n_api.TRANSPARENT )

if lstr_dis.itemid <> -1 and lstr_dis.itemid < UpperBound(FontArray) then
lstr_font.lffacename = FontArray[lstr_dis.itemid + 1]
lf = n_api.CreateFontIndirect( lstr_font )
Send(il_HwndCB, 339, lstr_dis.itemid, 18)
oldlf = n_api.SelectObject(lstr_dis.hdc, lf)
end if

n_api.DrawText(lstr_dis.hdc, facename, rtn, rtText, n_api.DT_LEFT)

n_api.SelectObject(lstr_dis.hdc, oldlf)

n_api.DeleteObject(lf)