MAKEMSI quickly and reliably creates MSI files in a non-programmatic way
Have your say! Join the MAKEMSI discussion list or view archive! Suggest improvements. No question too simple or too complex.
[Bottom][Contents][Prev]: User Interface Tips[Next]: Browse for File Dialog (in DLL Custom Action)
Have your say! Join the MAKEMSI discussion list or view archive! Suggest improvements. No question too simple or too complex.
\->Tips and Tricks->User Interface Tips->Billboards

Billboards

The following is a hack for testing but it does work, we hope to improve this but its good enough for an example (given how hard they are to find)!

Thanks again to Julian Onions for the code (which I've made minor tweaks to).

;--- Define BillBoards to be displayed --------------------------------------
<$Table "Billboard">
    ;--- Works --------------------------------------------------------------
    ;<$Row Billboard="Billboard1" Feature_="<$Feature?>" Action="InstallFiles" Ordering="1">
    ;<$Row Billboard="Billboard2" Feature_="<$Feature?>" Action="InstallFiles" Ordering="2">

    ;--- Doesn't ------------------------------------------------------------
    <$Row Billboard="Billboard1" Feature_="<$Feature?>">
    <$Row Billboard="Billboard2" Feature_="<$Feature?>">
<$/Table>


;--- Define 2 the controls for the BillBoards -------------------------------
<$Table "BBControl">
    ;--- BillBoard #1 (a bitmap on its own - can be any collection of controls) ---
    <$Binary "Aust_DB.bmp" Key="BBBitmap">      ;;I'm using this because its "handy"
    #(
        <$Row
            Billboard_="Billboard1"
            BBControl="BBControl1"
            Type="Bitmap"
            X=0 Y=0
            Width=50 Height=50
            Attributes=3
            Text="BBBitmap"
        >
    #)


    ;--- BillBoard #2 (two lines of text) -----------------------------------
    #(
        <$Row
            Billboard_="Billboard2"
            BBControl="Text"
            Type="Text"
            X=0 Y=0
            Width=50 Height=10
            Attributes=3
            Text="Hello world1"
        >
    #)
    #(
        <$Row
            Billboard_="Billboard2"
            BBControl="Text2"
            Type="Text"
            X=0 Y=10
            Width=50 Height=10
            Attributes=3
            Text="Hello world2"
        >
    #)
<$/Table>


;--- Hook into the progress messages to cycle the billboards ----------------
<$Table "EventMapping">
    <$Row Dialog_="ProgressDlg" Control_="BillboardHost" Event="SetProgress" Attribute="Progress">
   ;<$Row Dialog_="ProgressDlg" Control_="BillboardHost" Event="ActionData"  Attribute="Text">  ;;Flashes then Hang
<$/Table>


;--- Where the billboard will go on the progress dialog. --------------------
<$Table "Control">
    ;--- Overwrites "ActionText" (this is just a hack for testing) ----------
    <$Row Dialog_="ProgressDlg" Control="BillboardHost" Type="Billboard" X=35 Y=150 Width=300 Height=90 Attributes=3>
<$/Table>


Microsoft awarded me an MVP (Most Valuable Professional award) in 2004, 2005, 2006, 2007, 2008 & 2009 for the Windows SDK (Windows Installer) area.Please email me any feedback, additional information or corrections.
See this page online (look for updates)

[Top][Contents][Prev]: User Interface Tips[Next]: Browse for File Dialog (in DLL Custom Action)


MAKEMSI© is (C)opyright Dennis Bareis 2003-2008 (All rights reserved).
Saturday May 28 2022 at 3:11pm
Visit MAKEMSI's Home Page
Microsoft awarded me an MVP (Most Valuable Professional award) in 2004, 2005, 2006, 2007, 2008 & 2009 for the Windows SDK (Windows Installer) area.