No announcement yet.

2 problems in ComDlg32

  • Filter
  • Time
  • Show
Clear All
new posts

  • 2 problems in ComDlg32

    1) Already mentioned, can the selected filterindex be returned? (byref)
    2) I use quite a lot of filter entries, the asciiz is limmited, i copied this code and adapted it.
    The filter is now~2k
    Can this be increased, i like to use the PB stuff instead.



  • #2
    In GetOpenFileName?
    Filterindex is returned in OPENFILENAME structure

    lpStrFilter has no published limitation on size.

    Or are you talking about the OpenFileDialog function PB wrote as a wrapper for GetOpenFileName? If this, just modify it.


    Michael Mattias
    Tal Systems (retired)
    Port Washington WI USA
    [email protected]


    • #3
      I like to lift out the OpenFileDialog function from COMDLG32.INC and
      do own stunts there, different depending on app'. Then, no problem to
      let a global var store the returned nFilterIndex member, etc. Another
      advantage - one can also decide filter index on opening.

      Know you already know all this stuff, but in case you still want to
      see, and for eventual lurkers - in my editor control sample I lift out
      those functions for desired index selection, etc.

      It also shows proper way to handle Save dialog in 32-bit Windows. Save
      dialog must never have dual file prefixes per filter index, because then file
      will end up with double file ends (like PBedit's, for example)

      See (117KB)

      Oh yes - Should think the limit is the limit of what a combo box can handle,
      so should be possible to use as many as one needs (would be fun to release a
      good text editor with 32000 file types to chose from - all in random order..
      Eh, what was the question again (typical me - answer, but don't read question)
      The OpenFileDialog function can be modified to own needs. No problems to add
      a BYREF FilterIndex member to it, but best is to lift out function and do own
      version inside code, something like:
      FUNCTION MyOpenFileDialog (BYVAL hWnd AS DWORD, _           ' parent window
                                 BYVAL Caption AS STRING, _       ' caption
                                 Filespec AS STRING, _            ' filename
                                 BYVAL InitialDir AS STRING, _    ' start directory
                                 BYVAL Filter AS STRING, _        ' filename filter
                                 BYVAL DefExtension AS STRING, _  ' default extension
                               FilterIndex AS DWORD              '<- NOTE: added!
                                 Flags AS DWORD ) AS LONG         ' flags
        FUNCTION = GetOpenFilename(ofn)
        FilterIndex = ofn.nFilterIndex

      [This message has been edited by Borje Hagsten (edited September 20, 2001).]