wxmsw.tex
来自「Wxpython Implemented on Windows CE, Sou」· TEX 代码 · 共 423 行 · 第 1/2 页
TEX
423 行
or with transparency (for example, using XPMs).
\item Adding controls to wxToolMenuBar is not supported. However, wxToolBar supports
controls.
\end{itemize}
Unlike in all other ports, a wxDialog has a wxToolBar, automatically created
for you. You may either leave it blank, or access it with wxDialog::GetToolBar
and add buttons, then calling wxToolBar::Realize. You cannot set or recreate
the toolbar.
\wxheading{Menubars and toolbars in Smartphone}
On Smartphone, there are only two menu buttons, so a menubar is simulated
using a nested menu on the right menu button. Any toolbars are simply ignored on
Smartphone.
\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 memory
or not. The close button on a window does not call the window's
close handler; it simply hides the window. However, the guidelines say that
the Ctrl+Q accelerator can be used to quit the application, so wxWidgets
defines this accelerator by default and if your application handles
wxID\_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) will
never 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 to
be 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 with
tooltips are distinct controls, and it will be hard to add dynamic
tooltip support.
Control borders on PocketPC and Smartphone should normally be specified with
wxSIMPLE\_BORDER instead of wxSUNKEN\_BORDER. Controls will usually adapt
appropriately by virtue of their GetDefaultBorder() function, but if you
wish to specify a style explicitly you can use wxDEFAULT\_CONTROL\_BORDER
which will give a simple border on PocketPC and Smartphone, and the sunken border on
other platforms.
\subsubsection{Online help in wxWinCE}
You can use the help controller wxWinceHelpController which controls
simple {\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 using
the parameters defined in a special .inf file. The CabWiz program
in your SDK will compile the CAB file from the .inf file and
files that it specifies.
For delivery, you can simply ask the user to copy the CAB file to the
device and execute the CAB file using File Explorer. Or, you can
write a program for the desktop PC that will find the ActiveSync
Application 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 contains
scripts to create a PocketPC installation for ARM-based
devices. In particular, {\tt build.bat} builds the distribution and
copies it to a directory called {\tt Deliver}.
\subsubsection{wxFileDialog in PocketPC}
Allowing the user to access files on memory cards, or on arbitrary
parts of the filesystem, is a pain; the standard file dialog only
shows folders under My Documents or folders on memory cards
(not the system or card root directory, for example). This is
a 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 download
an extra library, {\tt ccrtrtti.lib}, and link with it. At the time of
writing 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: the
emulator 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 properties
for each configuration and in the Librarian, add a relative path ..$\backslash$..$\backslash$lib to
each library path. For example: {\tt ..$\backslash$\$(PlatformName)$\backslash$\$(ConfigurationName)$\backslash$wx\_mono.lib}.
Then, for a sample you want to compile, edit the configuration properties
and make sure {\tt ..$\backslash$..$\backslash$lib$\backslash$\$(PlatformName)$\backslash$\$(ConfigurationName)} is in the Linker/General/Additional
Library Directories property. Also change the Linker/Input/Additional Dependencies
property 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 features
to be supported.
\itemsep=0pt
\begin{itemize}
\item {\bf Windows Mobile 5 issues.} It is not possible to get the HMENU for
the command bar on Mobile 5, so the menubar functions need to be rewritten
to get the individual menus without use of a menubar handle. Also the
new Mobile 5 convention of using only two menus (and no bitmap buttons) needs to be
considered.
\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 their
icons, 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 hide
the SIP programmatically, with SHSipPreference. See also the {\it Input Dialogs} topic in
the {\it Programming Windows CE} guide for more on this, and how to have dialogs
show the SIP automatically using the WC\_SIPREF control.
\item {\bf wxStaticBitmap.} The About box in the "Life!" demo shows a bitmap that is
the 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 that
missing styles are implemented with WM\_PAINT.
\item {\bf HTML control.} PocketPC has its own HTML control which can be used for showing
local pages or navigating the web. We should create a version of wxHtmlWindow that uses this
control, 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 adding
tooltips, 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 may
be required.)
\item {\bf Focus.} In the wxPropertySheetDialog demo on Smartphone, it's not possible to navigate
between 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, perhaps
by using wxCLOSE\_BOX to indicate when the OK button should be displayed.
\item {\bf Dynamic adaptation.} We should probably be using run-time tests more
than preprocessor tests, so that the same WinCE application can run on different
versions of the operating system.
\item {\bf Modeless dialogs.} When a modeless dialog is hidden with the OK button, it doesn't restore the
frame's menubar. See for example the find dialog in the dialogs sample. However, the menubar is restored
if pressing Cancel (the window is closed). This reflects the fact that modeless dialogs are
not very useful on Windows CE; however, we could perhaps destroy/restore a modeless dialog's menubar
on deactivation and activation.
\item {\bf Home screen plugins.} Figure out how to make home screen plugins for use with wxWidgets
applications (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 write
a generic plugin that takes registry information from a given application, with
options to display information in a particular way using icons and text from
a specified location.
\item {\bf Further abstraction.} We should be able to abstract away more of the differences
between 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 + =
减小字号Ctrl + -
显示快捷键?