In your click event send CB_GETDROPDOWNSTATE, if it returns non-zero (ie it's dropped down) then send the CB_SHOWDROPDOWN , 0&, 0& to close it, otherwise send the CB_SHOWDROPDOWN, 1&, 0& to open it.