thanks Steve, I needed a reason to get going on this, and I'll have a look
tomorrow.

it's odd though, I thought I had used Word VBA listboxes, but maybe not.
it's an odd thing for me to have missed, since this is a lot of what I
develop these days (document automation using VBA in Word I mean).

Chip
 

-----Original Message-----
From: Stephen Clower [mailto:[email protected]] 
Sent: Wednesday, December 16, 2009 11:25 AM
To: [email protected]
Subject: Re: to GW; was Text from a Menu

Chip,

That sounds like a useful addition to your Word script. I've encountered a
lot of these owner-drawn listboxes in Word/Excel macros that use the Office
VBA controls. Being able to read these listboxes automatically could open up
a wide variety of Office extensions that we haven't been able to use before.

Steve



On 12/16/2009 11:16 AM, Chip Orange wrote: 

        thanks again Doug. 
         
        this gives me an idea for a script though: I'll take the techniques
I've developed in the ms office script, where I'm able to read an
owner-drawn listbox and find the highlighted item, and turn them into a
script which monitors for any such listbox, and speaks them when they're the
active control. 
         
        I know it won't help the ones which are graphic in nature, but it
may help in some situations.  
         
        Chip 
         

        From: Doug Geoffray [mailto:[email protected]] 
        Sent: Wednesday, December 16, 2009 9:08 AM
        To: [email protected]
        Subject: Re: to GW; was Text from a Menu
        
        
        Chip,
        
        No problem.  But just to be clear, owner drawn means the owner of
the control is responsible for displaying the contents of the listbox.
Normally when you use a listbox you simply give the listbox all the data and
the listbox itself is responsible for putting up the items that we see.
Given this it is easy to query the listbox directly to get the text of any
item.  But if the listbox is owner drawn then it tell the owner that it
needs to display the contents.  So the control itself doesn't have a clue of
what is displayed.  Typically owner drawn is used if you want to display
something like a graphic or something more visually appealing then just
standard looking text.
        
        Regards,
        Doug
        
        Chip Orange wrote: 

                Hi Doug, 
                 
                I guess I don't understand what "owner drawn" means; I
thought it meant non-window eyes listboxes.  I see now it's something else,
so sorry for the confusion. 
                 
                Chip 
                 

                From: Doug Geoffray [mailto:[email protected]] 
                Sent: Tuesday, December 15, 2009 8:25 AM
                To: [email protected]
                Subject: Re: to GW; was Text from a Menu
                
                
                Chip,
                
                As you mentioned, it worked for other listboxes.  So as long
as the listbox is not owner drawn then the text field works.  It doesn't
make sense to remove the text property just because owner drawn listboxes
don't work when all non-owner drawn work great.
                
                Regards,
                Doug
                
                Chip Orange wrote: 

                        ok, thanks Michael, I'll go test msaa again, as it
too wasn't giving me the selected text back when I wrote this project. 
                         
                        if this feature doesn't work, why then is the "text"
property for the listbox control  in the object model? 
                         
                        thanks. 
                         
                        Chip 
                         

                        From: Michael D. Lawler
[mailto:[email protected]] 
                        Sent: Monday, December 14, 2009 12:03 PM
                        To: [email protected]
                        Subject: RE: to GW; was Text from a Menu
                        
                        
                        This is as good as it gets short of using MSAA as
you can't get text via Win32 for owner drawn list boxes and in the case of
Word they are not using Win32 controls so you have to use MSAA.
                        
                        
                        
                        At 06:22 PM 12/12/2009, you wrote:
                        

                                ok, I decided to write my own test script
rather than send GW into the archives.
                                 
                                I thought I remembered they had fixed it,
but my test script shows it's mostly fixed, but there are places I found,
such as listboxes put up by MSWord, where the text of the selected item was
always empty.  you could get the number of the selected item, and I guess
that's something, but you could not get text of any item.
                                 
                                in other places, such as the listbox
displayed by WE for the systray apps, it was able to tell me the text of the
selected item.
                                 
                                sorry for the sidetrack.
                                 
                                Chip
                                 
                                
                                From: Chip Orange [
mailto:[email protected] <mailto:[email protected]> ] 
                                Sent: Saturday, December 12, 2009 12:45 PM
                                To: [email protected]
                                Subject: RE: to GW; was Text from a Menu
                                
                                thanks Jeff.
                                 
                                I appreciate the example of how to create a
listbox.
                                 
                                my problems in the past though, and my
question, was related to listboxes which were created by other applications.
I would get pointers to them via the window structures, or via msaa info and
the accessible structures, and neither one would properly indicate which
item was the selected item, even when an msaa event came through for a
selection having been made.
                                 
                                My conversations with Aaron at the time
indicated GW knew about the problem, so I was wondering if they knew if it
had been fixed.
                                 
                                thanks.
                                 
                                Chip
                                 
                                
                                From: Jeff Weiss [ mailto:[email protected]
<mailto:[email protected]> ] 
                                Sent: Friday, December 11, 2009 9:35 AM
                                To: [email protected]
                                Subject: RE: to GW; was Text from a Menu
                                
                                I know that identifying a simple listBox
item was fixed with an earlier version of the toolkit.
                                
                                This example from the manual does work:
                                
                                 
                                
                                ' This example creates a simple dialog with
a sorted list box of three items,
                                
                                ' along with custom default ' and cancel
buttons, and returns a string of the
                                
                                ' data associated with the selected item.
                                
                                 
                                
                                Dim myHotkey : Set myHotkey =
Keyboard.RegisterHotkey("Alt-Control-Shift-I","DisplayListBox")
                                
                                 
                                
                                Function DisplayListBox()
                                
                                Set myListBox =
SharedObjects("com.GWMicro.GwToolkit.SimpleDialogs", 90000).ListBoxDialog
                                
                                myListBox.AddItem "Red", "Red"
                                
                                myListBox.AddItem "Green", "Green"
                                
                                myListBox.AddItem "Blue", "Blue"
                                
                                 
                                
                                myListBox.Sort = True
                                
                                myListBox.DefaultButton = "&amp;Ok"
                                
                                myListBox.CancelButton = "Close"
                                
                                Dim returnValue : returnValue =
myListBox.ChooseItem("Select a color")
                                
                                Sleep 3000
                                
                                Speak ReturnValue
                                
                                Sleep 2000
                                
                                 
                                
                                ' If the green item was selected with the OK
button,
                                
                                ' speak would announce, "Green."
                                
                                 
                                
                                End Function 
                                
                                 
                                
                                This may not be the problem you are
considering, but I know this one was fixed.
                                
                                Jeff Weiss
                                
                                 
                                
                                 
                                
                                From: Chip Orange [
mailto:[email protected] <mailto:[email protected]> ] 
                                Sent: Thursday, December 10, 2009 7:23 PM
                                To: [email protected]
                                Subject: to GW; was Text from a Menu
                                
                                 
                                
                                Hello GW,
                                
                                 
                                
                                this reminds me: some versions back I was
trying to do this kind of thing to see which choice of a listbox was the
selected one, and this wasn't working, and was confirmed as a bug in WE.  I
think it wasn't working in either the listbox control structure or the
accessible info.
                                
                                 
                                
                                Can you tell me if seeing which choice is
the selected one in a listbox is now possible?
                                
                                 
                                
                                thanks.
                                
                                 
                                
                                Chip
                                
                                 
                                
                                 
                                
                                 
                                From: Stephen Clower [
mailto:[email protected] <mailto:[email protected]> ] 
                                Sent: Wednesday, December 09, 2009 10:31 PM
                                To: [email protected]
                                Subject: Re: Text from a Menu
                                
                                J.J.,
                                
                                If you're looking at the menu through MSAA,
you might test for something like:
                                
                                Set accObj = FocusedWindow.Accessible '
Assuming the focused window is a menu, set the accObj variable to hold the
Accessible representation of the focused item.
                                If accObj.State = state_SYSTEM_CHECKED Then
                                ' item is checked.
                                Else
                                ' It isn't.
                                End If
                                
                                Hope this helps.
                                Steve
                                
                                
                                
                                On 12/9/2009 10:22 PM, J.J. Meddaugh wrote: 
                                
                                Hello. I was wondering if someone could
point me in the right direction of how to obtain the state of a checkbox
that's inside of a standard application menu? I was looking all over the
script manual, but apparently not hard enough. 
                                
                                Thanks. 
                                
                                 
                                
                                J.J. Meddaugh - ATGuys.com
                                A premier Licensed Code Factory and KNFB
Reader distributor 
                                
                                 

                        -- 
                        Michael D. Lawler
                        Voice 260-489-3671
                        Fax 260-489-2608
                        Internet mailto:[email protected]
                        <mailto:[email protected]> web
http://www.gwmicro.com
                        <http://www.gwmicro.com/> ftp ftp://ftp.gwmicro.com
                        <ftp://ftp.gwmicro.com/> GW Micro, Inc.,
                        Development Liaison and Technical Support Supervisor
                        



Reply via email to