Q192075: HOWTO: Making Coolbar Interface Using Toolbar ActiveX Control
Article: Q192075
Product(s): Microsoft FoxPro
Version(s): WINDOWS:5.0,5.0a,6.0
Operating System(s):
Keyword(s):
Last Modified: 29-JUL-1999
-------------------------------------------------------------------------------
The information in this article applies to:
- Microsoft Visual FoxPro for Windows, versions 5.0, 5.0a, 6.0
-------------------------------------------------------------------------------
SUMMARY
=======
This article describes how to create a Coolbar like interface using the
Microsoft Toolbar Version 6.0 ActiveX control.
MORE INFORMATION
================
The Coolbar interface is an interface where the buttons highlight only when the
user moves the mouse over them, like the behavior in Internet Explorer version
4.0.
The main property to make a Coolbar like button is the Style property of the
Toolbar active control. The default value of the Style property is "0 [ASCII
150] Standard" button. Changing this property to "1 [ASCII 150] Transparent"
provides Coolbar like button behavior.
Example
-------
1. Create a program file and place the following code in the file:
PUBLIC x
x=CREATEOBJECT("myform")
x.SHOW
**************************************************
* myform - Class Definition
**************************************************
DEFINE CLASS myform as Form
ADD OBJECT myclass1 AS myclass
ADD OBJECT check1 AS checkbox WITH;
Top = 150,;
Left = 50,;
Height = 50,;
Caption = "CoolBar"
PROCEDURE check1.Click
DO CASE
CASE This.value = 0
&& Changing the Toolbar to look like Coolbar.
Thisform.myclass1.OBJECT.Style = 0
CASE This.value = 1
&& Changeing the Toolbar to Standard Toolbar.
Thisform.myclass1.OBJECT.Style = 1
ENDCASE
ENDPROC
PROCEDURE myclass1.ButtonClick
*** ActiveX Control Event ***
LPARAMETERS button
DO CASE
CASE Button.key = "One"
WAIT WINDOW "Test1"
CASE Button.key = "Two"
WAIT WINDOW "Test2"
CASE Button.key = "Three"
WAIT WINDOW "Test3"
ENDCASE
ENDPROC
PROCEDURE myclass1.ButtonMenuClick
*** ActiveX Control Event ***
LPARAMETERS buttonmenu
DO CASE
CASE buttonmenu.key = "One"
WAIT WINDOW "SubOne"
CASE buttonmenu.key = "Two"
WAIT WINDOW "SubTwo"
ENDCASE
ENDPROC
ENDDEFINE
*-- EndDefine: myform
**************************************************
**************************************************
* myclass - Class Definition
**************************************************
DEFINE CLASS myclass AS olecontrol
#DEFINE tbrDEFAULT 0 && (Defaul) Button
#DEFINE tbrCHECK 1 && CheckBox
#DEFINE tbrBUTTONGROUP 2 && ButtonGroup
#DEFINE tbrSEPARATOR 3 && Separator
#DEFINE tbrPLACEHOLDER 4 && Placeholder
#DEFINE tbrDROPDOWN 5 && MenuButton DropDown
Top = 0
Left = 0
Height = 38
Width = 375
Align = 1
Name = "Olecontrol1"
OleClass = "MSComCtlLib.Toolbar.2"
PROCEDURE Init
This.Buttons.Add(,"One","Test1",,)
This.Buttons.Add(,"Two","Test2",,)
This.Buttons.Add(,"Spr",,tbrSEPARATOR,)
This.Buttons.Add(,"Three","Test3",tbrDROPDOWN,)
This.Buttons(4).ButtonMenus.Add(1,"One","SubOne")
This.Buttons(4).ButtonMenus.Add(2,"Two","SubTwo")
ENDPROC
ENDDEFINE
*-- EndDefine: myclass
**************************************************
REFERENCES
==========
Refer to Toolbar Active Control help in Cmctl198.chm for additional information
about Toolbar Active Control.
Additional query words: kbVFp500a kbVFp500 kbVFp600 kbActiveX
======================================================================
Keywords :
Technology : kbVFPsearch kbAudDeveloper kbVFP500 kbVFP600 kbVFP500a
Version : WINDOWS:5.0,5.0a,6.0
Issue type : kbhowto
=============================================================================
THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.
Copyright Microsoft Corporation 1986-2002.