]> git.saurik.com Git - wxWidgets.git/blobdiff - docs/latex/wx/wxmsw.tex
define _HPUX_SOURCE under HP-UX, otherwise many things are not defined in standard...
[wxWidgets.git] / docs / latex / wx / wxmsw.tex
index 69df7b1157c4850560bec1dd0f7887788408edc1..d73426584cd7efcba412c3ff70627ae7a3535b95 100644 (file)
@@ -20,7 +20,7 @@ most of wxMSW is common to Win32 and Windows CE but there are
 some simplifications, enhancements, and differences in
 behaviour.
 
-For installation instructions, see docs/msw/wince in the
+For building instructions, see docs/msw/wince in the
 distribution. The rest of this section documents issues you
 need to be aware of when programming for Windows CE devices.
 
@@ -64,6 +64,13 @@ style of device.
 See the "Life!" example (demos/life) for an example of
 an application that has been tailored for PocketPC and Smartphone use.
 
+{\bf Note:} don't forget to have this line in your .rc file, as for
+desktop Windows applications:
+
+\begin{verbatim}
+#include "wx/msw/wx.rc"
+\end{verbatim}
+
 \subsubsection{Testing for WinCE SDKs}
 
 Use these preprocessor symbols to test for the different types of device or SDK:
@@ -127,7 +134,7 @@ and unregister the button when you're done with it. For example:
   win->UnregisterHotKey(0);
 \end{verbatim}
 
-You may have to register the buttons in a wxEVT_ACTIVATE event handler
+You may have to register the buttons in a wxEVT\_ACTIVATE event handler
 since other applications will grab the buttons.
 
 There is currently no method of finding out the names of the special
@@ -158,7 +165,7 @@ and wxTopLevelWindow::SetRightMenu, for example:
 #endif
 \end{verbatim}
 
-For implementing property sheets (flat tabs), use a wxNotebook with wxNB_FLAT|wxNB_BOTTOM
+For implementing property sheets (flat tabs), use a wxNotebook with wxNB\_FLAT|wxNB\_BOTTOM
 and have the notebook left, top and right sides overlap the dialog by about 3 pixels
 to eliminate spurious borders. You can do this by using a negative spacing in your
 sizer Add() call. The cross-platform property sheet dialog \helpref{wxPropertySheetDialog}{wxpropertysheetdialog} is
@@ -245,6 +252,13 @@ Tooltips are not currently supported for controls, since on PocketPC controls wi
 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
@@ -291,6 +305,24 @@ shows folders under My Documents or folders on memory cards
 a known problem for PocketPC developers, and a wxFileDialog
 replacement will need to be written.
 
+\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}
+
 \subsubsection{Remaining issues}
 
 These are some of the remaining problems to be sorted out, and features
@@ -309,9 +341,6 @@ and the remaining area, by calling SHSipInfo. We also may need to be able to sho
 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 Drawing.} The "Life!" demo shows some droppings being left on the window,
-indicating that drawing works a bit differently between desktop and mobile versions of
-Win32.
 \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
@@ -328,11 +357,19 @@ control, or have a separately-named control (wxHtmlCtrl), with a syntax as close
 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