📄 wxmsw.tex
字号:
or with transparency (for example, using XPMs).\item Adding controls to wxToolMenuBar is not supported. However, wxToolBar supportscontrols.\end{itemize}Unlike in all other ports, a wxDialog has a wxToolBar, automatically createdfor you. You may either leave it blank, or access it with wxDialog::GetToolBarand add buttons, then calling wxToolBar::Realize. You cannot set or recreatethe toolbar.\wxheading{Menubars and toolbars in Smartphone}On Smartphone, there are only two menu buttons, so a menubar is simulatedusing a nested menu on the right menu button. Any toolbars are simply ignored onSmartphone.\subsubsection{Closing windows in wxWinCE}The guidelines state that applications should not have a Quit menu item,since the user should not have to know whether an application is in memoryor not. The close button on a window does not call the window'sclose handler; it simply hides the window. However, the guidelines say thatthe Ctrl+Q accelerator can be used to quit the application, so wxWidgetsdefines this accelerator by default and if your application handleswxID\_EXIT, it will do the right thing.\subsubsection{Context menus in wxWinCE}To enable context menus in PocketPC, you currently need to call wxWindow::EnableContextMenu,a wxWinCE-only function. Otherwise the context menu event (wxContextMenuEvent) willnever be sent. This API is subject to change.Context menus are not supported in Smartphone.\subsubsection{Control differences on wxWinCE}These controls and styles are specific to wxWinCE:\itemsep=0pt\begin{itemize}\item {\bf wxTextCtrl} The wxTE\_CAPITALIZE style causes a CAPEDIT control tobe created, which capitalizes the first letter.\end{itemize}These controls are missing from wxWinCE:\itemsep=0pt\begin{itemize}\item {\bf MDI classes} MDI is not supported under Windows CE.\item {\bf wxMiniFrame} Not supported under Windows CE.\end{itemize}Tooltips are not currently supported for controls, since on PocketPC controls withtooltips are distinct controls, and it will be hard to add dynamictooltip support.Control borders on PocketPC and Smartphone should normally be specified withwxSIMPLE\_BORDER instead of wxSUNKEN\_BORDER. Controls will usually adaptappropriately by virtue of their GetDefaultBorder() function, but if youwish to specify a style explicitly you can use wxDEFAULT\_CONTROL\_BORDERwhich will give a simple border on PocketPC and Smartphone, and the sunken border onother platforms.\subsubsection{Online help in wxWinCE}You can use the help controller wxWinceHelpController which controlssimple {\tt .htm} files, usually installed in the Windows directory.See the Windows CE reference for how to format the HTML files.\subsubsection{Installing your PocketPC and Smartphone applications}To install your application, you need to build a CAB file usingthe parameters defined in a special .inf file. The CabWiz programin your SDK will compile the CAB file from the .inf file andfiles that it specifies.For delivery, you can simply ask the user to copy the CAB file to thedevice and execute the CAB file using File Explorer. Or, you canwrite a program for the desktop PC that will find the ActiveSyncApplication Manager and install the CAB file on the device,which is obviously much easier for the user.Here are some links that may help.\itemsep=0pt\begin{itemize}\item A setup builder that takes CABs and builds a setup program is at \urlref{http://www.eskimo.com/~scottlu/win/index.html}{http://www.eskimo.com/~scottlu/win/index.html}.\item Sample installation files can be found in {\tt Windows CE Tools/wce420/POCKET PC 2003/Samples/Win32/AppInst}.\item An installer generator using wxPython can be found at \urlref{http://ppcquicksoft.iespana.es/ppcquicksoft/myinstall.html}{http://ppcquicksoft.iespana.es/ppcquicksoft/myinstall.html}.\item Miscellaneous Windows CE resources can be found at \urlref{http://www.orbworks.com/pcce/resources.html}{http://www.orbworks.com/pcce/resources.html}.\item Installer creation instructions with a setup.exe for installing to PPC can be found at \urlref{http://www.pocketpcdn.com/articles/creatingsetup.html}{http://www.pocketpcdn.com/articles/creatingsetup.html}.\item Microsoft instructions are at \urlref{http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnce30/html/appinstall30.asp?frame=true&hidetoc=true}{http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnce30/html/appinstall30.asp?frame=true&hidetoc=true}.\item Troubleshooting WinCE application installations: \urlref{http://support.microsoft.com/default.aspx?scid=KB;en-us;q181007}{http://support.microsoft.com/default.aspx?scid=KB;en-us;q181007}\end{itemize}You may also check out {\tt demos/life/setup/wince} which containsscripts to create a PocketPC installation for ARM-baseddevices. In particular, {\tt build.bat} builds the distribution andcopies it to a directory called {\tt Deliver}.\subsubsection{wxFileDialog in PocketPC}Allowing the user to access files on memory cards, or on arbitraryparts of the filesystem, is a pain; the standard file dialog onlyshows folders under My Documents or folders on memory cards(not the system or card root directory, for example). This isa known problem for PocketPC developers.If you need a file dialog that allows access to all folders,you can use wxGenericFileDialog instead. You will need to include {\tt wx/generic/filedlgg.h}.\subsubsection{Embedded Visual C++ Issues}\wxheading{Run-time type information}If you wish to use runtime type information (RTTI) with eVC++ 4, you need to downloadan extra library, {\tt ccrtrtti.lib}, and link with it. At the time ofwriting you can get it from here:\begin{verbatim}http://support.microsoft.com/kb/830482/en-us\end{verbatim}Otherwise you will get linker errors similar to this:\begin{verbatim}wxwince26d.lib(control.obj) : error LNK2001: unresolved external symbol "const type_info::`vftable'" (??_7type_info@@6B@)\end{verbatim}\wxheading{Windows Mobile 5.0 emulator}Note that there is no separate emulator configuration for Windows Mobile 5.0: theemulator runs the ARM code directly.\wxheading{Visual Studio 2005 project files}Unfortunately, Visual Studio 2005, required to build Windows Mobile 5.0 applications,doesn't do a perfect job of converting the project files from eVC++ format.When you have converted the wxWidgets workspace, edit the configuration propertiesfor each configuration and in the Librarian, add a relative path ..$\backslash$..$\backslash$lib toeach library path. For example: {\tt ..$\backslash$\$(PlatformName)$\backslash$\$(ConfigurationName)$\backslash$wx\_mono.lib}.Then, for a sample you want to compile, edit the configuration propertiesand make sure {\tt ..$\backslash$..$\backslash$lib$\backslash$\$(PlatformName)$\backslash$\$(ConfigurationName)} is in the Linker/General/AdditionalLibrary Directories property. Also change the Linker/Input/Additional Dependenciesproperty to something like {\tt coredll.lib wx\_mono.lib wx\_wxjpeg.lib wx\_wxpng.lib wx\_wxzlib.lib wx\_wxexpat.lib commctrl.lib winsock.lib wininet.lib}\rtfsp(since the library names in the wxWidgets workspace were changed by VS 2005).Alternately, you could could edit all the names to be identical to the original eVC++names, but this will probably be more fiddly.\subsubsection{Remaining issues}These are some of the remaining problems to be sorted out, and featuresto be supported.\itemsep=0pt\begin{itemize}\item {\bf Windows Mobile 5 issues.} It is not possible to get the HMENU forthe command bar on Mobile 5, so the menubar functions need to be rewrittento get the individual menus without use of a menubar handle. Also thenew Mobile 5 convention of using only two menus (and no bitmap buttons) needs to beconsidered.\item {\bf Sizer speed.} Particularly for dialogs containing notebooks,layout seems slow. Some analysis is required.\item {\bf Notification boxes.} The balloon-like notification messages, and theiricons, should be implemented. This will be quite straightforward.\item {\bf SIP size.} We need to be able to get the area taken up by the SIP (input panel),and the remaining area, by calling SHSipInfo. We also may need to be able to show and hidethe SIP programmatically, with SHSipPreference. See also the {\it Input Dialogs} topic inthe {\it Programming Windows CE} guide for more on this, and how to have dialogsshow the SIP automatically using the WC\_SIPREF control.\item {\bf wxStaticBitmap.} The About box in the "Life!" demo shows a bitmap that isthe correct size on the emulator, but too small on a VGA Pocket Loox device.\item {\bf wxStaticLine.} Lines don't show up, and the documentation suggests thatmissing styles are implemented with WM\_PAINT.\item {\bf HTML control.} PocketPC has its own HTML control which can be used for showinglocal pages or navigating the web. We should create a version of wxHtmlWindow that uses thiscontrol, or have a separately-named control (wxHtmlCtrl), with a syntax as close as possible to wxHtmlWindow.\item {\bf Tooltip control.} PocketPC uses special TTBUTTON and TTSTATIC controls for addingtooltips, with the tooltip separated from the label with a double tilde. We need to support this using SetToolTip.(Unfortunately it does not seem possible to dynamically remove the tooltip, so an extra style maybe required.)\item {\bf Focus.} In the wxPropertySheetDialog demo on Smartphone, it's not possible to navigatebetween controls. The focus handling in wxWidgets needs investigation. See in particular src/common/containr.cpp,and note that the default OnActivate handler in src/msw/toplevel.cpp sets the focus to the first child of the dialog.\item {\bf OK button.} We should allow the OK button on a dialog to be optional, perhapsby using wxCLOSE\_BOX to indicate when the OK button should be displayed.\item {\bf Dynamic adaptation.} We should probably be using run-time tests morethan preprocessor tests, so that the same WinCE application can run on differentversions of the operating system.\item {\bf Modeless dialogs.} When a modeless dialog is hidden with the OK button, it doesn't restore theframe's menubar. See for example the find dialog in the dialogs sample. However, the menubar is restoredif pressing Cancel (the window is closed). This reflects the fact that modeless dialogs arenot very useful on Windows CE; however, we could perhaps destroy/restore a modeless dialog's menubaron deactivation and activation.\item {\bf Home screen plugins.} Figure out how to make home screen plugins for use with wxWidgetsapplications (see {\tt http://www.codeproject.com/ce/CTodayWindow.asp} for inspiration).Although we can't use wxWidgets to create the plugin (too large), we could perhaps writea generic plugin that takes registry information from a given application, withoptions to display information in a particular way using icons and text froma specified location.\item {\bf Further abstraction.} We should be able to abstract away more of the differencesbetween desktop and mobile applications, in particular for sizer layout.\item {\bf Dialog captions.} The blue, bold captions on dialogs - with optional help button -should be catered for, either by hard-wiring the capability into all dialogs and panels,or by providing a standard component and sizer.\end{itemize}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -