Windows Tips


Backgrounds and footers on slides

To make sure your slide numbers etc show up you need to:

Sizing a slideshow (eg for Access Grid)

The simple approach is to go to SlideshowSet up Show  and select Show type as Browsed by an individual (window). You can then position and size the slideshow window with the mouse, so as to exactly overlay the region being transmitted over Access Grid. At the moment I send windows over Access Grid by running the Hummingbird X server on my PC and using the Linux version of vic to capture a screen region (which I might move down from top-left so as to avoid the window decorations). Sometime soon, I might have a version of vic based on OpenMash which directly captures Windows regions.

You can do a more sophisticated job by running a Visual Basic macro inside PowerPoint. Just go to Tools
MacroMacros..., type in a suitable macro name, say WindowedSlideShow and press Create. In the code window that opens, insert the following code:

Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Declare Function GetDeviceCaps Lib "gdi32" (ByVal hDC As Long, ByVal nIndex As Long) As Long
Const LOGPIXELSX = 88 ' Logical pixels/inch in X
Const LOGPIXELSY = 90 ' Logical pixels/inch in Y

Sub WindowedSlideShow()
  Dim new_width As Double
  Dim new_height As Double
  Dim XDPI As Double
  Dim YDPI As Double
  Dim hDC As Long
  hDC = GetDC(0)
  XDPI = GetDeviceCaps(hDC, LOGPIXELSX)
  YDPI = GetDeviceCaps(hDC, LOGPIXELSY)
  With SlideShowWindows(1)
    new_width = 352# * 72# / XDPI
    .Width = new_width
    new_height = 288# * 72# / YDPI
    .Height = new_height
  Rem Offsets below are in points (1/72 inch), not pixels
  Rem .Left = 30
  Rem .Top = 100
  End With
End Sub

When you want to invoke the slideshow, just type Alt-f8 and select the macro. As written, the macro generates a slideshow of "normal" size (352 x 288 pixels) in the top left corner of the screen. You can just change the numbers to change the size, or uncomment the positioning lines to change the position. The only tricky bit is that the sizes and offsets are in points (1/72 inch) whereas the normal screen resolution (set in Control PanelDisplaySettingsAdvanced) is 96dpi; here we get the screen resolution from Windows so everything should always work properly.

You can add this macro to a tool bar by selecting ViewToolbarsCustomize...Commands and select Macros in Categories: Then drag your macro onto a suitable toolbar and close the dialog.

If you need to find the magic Win32 API declarations for another macro, they are in Win32API.txt.

Essential Windows Software