Just picking this up because no one else has, not because I have much experience with DXFs.
An example. I have a mixed geometry DXF called su66.dxf. One of its layers, G8040201, contains contours that I wish to extract to a shapefile. I can do this using ogr2ogr:
ogr2ogr su66.shp -where "LAYER='G8040201'" su66.dxf
This is fine if you happen to know the names of the layers in the DXF. If you don't then you can get a list of the layers using ogrinfo:
ogrinfo su66.dxf -al | grep Layer > layers.txt
This will produce a long text file (layers.txt) with lots of duplicates that you can go through to find the layer names. It won't, unfortunately, tell you which layer contains the contours, for example.
Added later: Okay, Windows 7. If you installed QGIS using OSGeo4W and you don't know anything about working from the command line this is probably the simplest way.
When you installed QGIS it should have put a short-cut on your Desktop called "OSGeo4W". Using the Windows file manager copy this and paste it into the directory containing your DXF. Then double-click on the "OSGeo4W" icon, which should open a OSGeo4W command line window. Type the ogr2ogr command line here and then press return.
Nick.