- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I'm using the API function GetOpenFilename, and I want to to add the built-in optional Help feature. The Help button can be made to appear in the dialog by setting the flag Ofn_ShowHelp, but that's as far as I've gotten. The feature documentation goes on to say that Ofn%HwndOwner "must specify the window to receive the HELPMSGSTRING registered messages that the dialog box sends when the user clicks the Help button", or, that the dialog box "sends a CDN_HELP notification message to your hook procedure when the user clicks the Help button."
Help! If I even understood what this means, I'd probably be programming a Win application instead of Quickwin.
Can anyone give me an example showing how to use this? The standard sample provided by Intel doesn't make use of the Help button.
p.s. I'd also like to control where the dialog appears in my Project Window. So far I've been led to believe that a hook procedure is needed for that, too. Maybe I can kill two birds with one hook procedure? But I don't even know what a hook procedure is.
Help! If I even understood what this means, I'd probably be programming a Win application instead of Quickwin.
Can anyone give me an example showing how to use this? The standard sample provided by Intel doesn't make use of the Help button.
p.s. I'd also like to control where the dialog appears in my Project Window. So far I've been led to believe that a hook procedure is needed for that, too. Maybe I can kill two birds with one hook procedure? But I don't even know what a hook procedure is.
Link Copied
3 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I just checked my program's use of GetOpenFileName, and the Windows dialog for this function does indeed contain a help button, which summons the standard Windows-supplied help content. Here is a code sample (the calling argument rw_mode is a character, 'R' for read and 'W' for write; function MOR() does a Multiple IOR among its arguments):
[bash]LOGICAL FUNCTION DlgFileIO (rw_mode, hwndParent, filter, fullpath, ncfn, extn, ncextn, path)
IMPLICIT NONE
CHARACTER(LEN=1), INTENT(IN) :: rw_mode
INTEGER(HANDLE), INTENT(IN) :: hwndParent
CHARACTER(LEN=*), INTENT(IN) :: filter
CHARACTER(LEN=*), INTENT(IN) :: extn
CHARACTER(LEN=*), INTENT(INOUT) :: fullpath
INTEGER, INTENT(INOUT) :: ncfn, ncextn
CHARACTER(LEN=*), INTENT(INOUT) :: path
INTEGER :: rval
TYPE(T_OPENFILENAME) :: ofn
ofn%lStructSize = SIZEOF(ofn)
ofn%hwndOwner = hwndParent
ofn%hInstance = ghInstance ! available globally
ofn%lpstrFilter = LOC(filter)
ofn%nFilterIndex = 0 ! force use of 1st filter entry,
ofn%lpstrCustomFilter = 0 ! restricts to single file type
ofn%lpstrFile = LOC(fullpath)
ofn%nMaxFile = LEN(fullpath)
ofn%lpstrInitialDir = LOC(path)
ofn%lpstrDefExt = LOC(extn)
ofn%nMaxCustFilter = 0
ofn%nMaxFileTitle = 0
ofn%lpstrTitle = loc(""C)
ofn%lpfnHook = NULL
ofn%lpTemplateName = NULL
IF (rw_mode == 'R') THEN
ofn%Flags = MOR(OFN_HIDEREADONLY, OFN_PATHMUSTEXIST, &
OFN_FILEMUSTEXIST, OFN_SHAREAWARE )
DlgFileIO = GetOpenFileName (ofn)
ELSE
ofn%Flags = MOR(OFN_HIDEREADONLY, OFN_CREATEPROMPT, &
OFN_PATHMUSTEXIST, OFN_OVERWRITEPROMPT)
DlgFileIO = GetSaveFileName (ofn)
END IF
ncfn = ofn%nFileOffset + 1
ncextn = ofn%nFileExtension + 1
END FUNCTION DlgFileIO
[/bash]
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks Paul, but it looks like by "help" you are thinking of the "?" icon in the upper right corner of the dialog. That has nothing to do with the ofn.showhelp flag. This flag causes a common dialog button control to appear, labeled "Help", to which you can link your own custom help text. That's what I'm talking about.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
In that case you need to link in htmlhelp.lib and use the htmlhelp() API function. This function would be called when the opsys sends your proc a WM_HELP message, and it opens the standard help dialog and fills it with the content of your own .chm file.
Since Quickwin precludes access to the window's proc function, responding to WM_HELP messages in that programming context may become a bit difficult.
Search this forum for "htmlhelp", there are a number of posts from some years ago, I think the library was uploaded by Jugoslav. The help system is easy to implement and works perfectly, if you have provided your own proc functions.
Since Quickwin precludes access to the window's proc function, responding to WM_HELP messages in that programming context may become a bit difficult.
Search this forum for "htmlhelp", there are a number of posts from some years ago, I think the library was uploaded by Jugoslav. The help system is easy to implement and works perfectly, if you have provided your own proc functions.
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page