|
From: Julia D. (Contractor) <jul...@un...> - 2017-01-13 21:11:13
|
Thank you. I tried to upgrade to the new version of FOX toolkit (version
1.6.53). When I build my application, which dynamically links with the FOX
libraries (FOX-1.6.lib and FOXDLL-1.6.lib). I built the FOX libraries as
64-bit in Visual Studio 2013, I get the following warning message when it
builds the FOX header file FXList.h:
"warning C4251: FX::FXList::items : class
FX::FXObjectListOf<FX::FXListItem> needs to have dll-interface to be used
by clients of class FX::FXList"
I did not get this warning message with version 1.6.51. Should I be
concerned? Do you know what would cause it?
Thanks
Julia
On Wed, Jan 11, 2017 at 8:57 PM, JVZ <je...@fo...> wrote:
> On Wed, 11 Jan 2017 14:25:20 -0500
> "Julia Dudascik (Contractor)" <jul...@un...> wrote:
>
> >Hi,
> >
> >I would like to add a HotKey in my Main Window. When the user presses the
> >button Ctl+Q (Control Q), I would like the application to exit. In the
> >constructor where I create my window, I did the following:
> >
> >FXHotKey test = parseHotKey("Ctl-Q")
> >this->addHotKey(test)
> >this->accelTable->addAccel(test, this, ID_TEST_HOTKEY)
> >
> >Then in FXMAPFUNC, I define:
> >FXMAPFUNC(SeL_KEYPRESS, MyClass::ID_TEST_HOTKEY,
> MyClass::test_hot_keyFunc),
> >
> >When I pres Control Q, the application never gets to my function
> >test_hot_keyFunc.
> >
> >Did I define the hotkey correctly for Control q?
> >How do you set-up a hot key for a window, so that the user can quit the
> >application
> >with the command Ctl-Q in the main window?
> >
> >This is just one instance on shortcuts I would like my "Main Window" to
> >have. For instance, I would also like to save the database with the
> command
> >Ctl+S. I am first trying to figure out how to add a hot key to a window
> >before proceeding, Any assistance would be greatly appreciated.
> >
> >Thank you
> >Julia
>
> You should want to use parseAccell() instead of parseHotKey().
> parseAccel()
> is for strings like "Ctl-Q" and "Shift-Alt-F3". The parseHotKey()( is for
> strings that are part of a menu or label, such as "&Open File" (which
> would add a hotkey Alt-O, active only when the label or menu is presented.
>
> Now, since you're supplying the text directly, you might as well just skip
> the step and call acceltable->addAccel() directly, like:
>
> getAccelTable()->addAccel(MKUINT(KEY_Q,CONTROLMASK),
> mytarget,FXSEL(SEL_COMMAND,MyWidget::ID_THEMESSAGE));
>
> This would be a lot simpler.
>
> Of course, if your program has pulldown menus, you can make your life even
> easier
> by just passing a special string to the Quit option:
>
> menubar=new FXMenuBar(...);
> filemenu=new FXMenuPane(...);
> new FXMenuTitle(menubar,"&File",NULL,filemenu);
>
> new FXMenuCommand(filemenu,"&Open...",...);
> ...
> ...
> ...
> new FXMenuCommand(filemenu,"&Quit\tCtl-Q",...);
>
> In FXMenuTitle, the string "&File" would automatically add a hot-key Alt-F
> to
> bring up the menu, while the string "&Quit\tCtl-Q" would not only add a
> hot-key
> Alt-Q but also an accelerator Ctl-Q.
>
> Since most applications would have a menubar, this is by-far the easiest
> way to
> add hotkeys and accelerators.
>
> But every once in a while, you may have an accelerator that does not have
> a corresponding
> menu, or maybe have an app that has no menus; in such a case, directly
> adding the key-combo
> to the accelerator table may be the way to go....
>
>
> Hope this helps,
>
>
> -- JVZ
>
>
>
>
>
>
>
>
>
|