www.pudn.com > Outlook 97样式的菜单.zip > VertMenu.rtf
{\rtf1\ansi\ansicpg1252\uc1 \deff1\deflang1033\deflangfe1033{\fonttbl{\f0\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f1\fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Arial;}
{\f57\froman\fcharset238\fprq2 Times New Roman CE;}{\f58\froman\fcharset204\fprq2 Times New Roman Cyr;}{\f60\froman\fcharset161\fprq2 Times New Roman Greek;}{\f61\froman\fcharset162\fprq2 Times New Roman Tur;}
{\f62\froman\fcharset186\fprq2 Times New Roman Baltic;}{\f63\fswiss\fcharset238\fprq2 Arial CE;}{\f64\fswiss\fcharset204\fprq2 Arial Cyr;}{\f66\fswiss\fcharset161\fprq2 Arial Greek;}{\f67\fswiss\fcharset162\fprq2 Arial Tur;}
{\f68\fswiss\fcharset186\fprq2 Arial Baltic;}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;
\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}{\stylesheet{\nowidctlpar\widctlpar\adjustright \f1\fs20\cgrid \snext0 Normal;}{\*\cs10
\additive Default Paragraph Font;}{\*\cs15 \additive \ul\cf2 \sbasedon10 Hyperlink;}}{\info{\title Vertical Menu (aka Outlook Bar)}{\author Robert L. Kubelka, Jr.}{\operator Robert L. Kubelka, Jr.}{\creatim\yr1997\mo2\dy17\hr9\min52}
{\revtim\yr1997\mo2\dy18\hr15\min20}{\version7}{\edmins50}{\nofpages3}{\nofwords587}{\nofchars3348}{\*\company WinResources Computing, Inc.}{\nofcharsws4111}{\vern71}}
\widowctrl\ftnbj\aenddoc\hyphcaps0\formshade\viewkind1\viewscale150\pgbrdrhead\pgbrdrfoot \fet0\sectd \linex0\endnhere\sectdefaultcl {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang{\pntxta .}}
{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang{\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang{\pntxtb (}
{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}\pard\plain
\qc\nowidctlpar\widctlpar\adjustright \f1\fs20\cgrid {\b\fs44 Vertical Menu (aka Outlook Bar)
\par }\pard \nowidctlpar\widctlpar\adjustright {
\par Created by:
\par Robert L. Kubelka, MCSE
\par WinResources Computing, Inc.
\par 140 Marine View Avenue, Suite 220
\par Solana Beach, CA 92075
\par Phone:\tab (619) 794-2902
\par FAX:\tab (619) 794-5336
\par Email:\tab }{\field{\*\fldinst { HYPERLINK mailto:rkubelka@winresources.com }{{\*\datafield
00d0c9ea79f9bace118c8200aa004ba90b02000000170000001a00000072006b007500620065006c006b0061004000770069006e007200650073006f00750072006300650073002e0063006f006d000000e0c9ea79f9bace118c8200aa004ba90b420000006d00610069006c0074006f003a0072006b007500620065006c00
6b0061004000770069006e007200650073006f00750072006300650073002e0063006f006d0000000000}}}{\fldrslt {\cs15\ul\cf2 rkubelka@winresources.com}}}{
\par Site:\tab }{\field{\*\fldinst { HYPERLINK http://www.winresources.com }{{\*\datafield
00d0c9ea79f9bace118c8200aa004ba90b0200000017000000150000007700770077002e00770069006e007200650073006f00750072006300650073002e0063006f006d000000e0c9ea79f9bace118c8200aa004ba90b3a00000068007400740070003a002f002f007700770077002e00770069006e007200650073006f00
750072006300650073002e0063006f006d002f0000000000}}}{\fldrslt {\cs15\ul\cf2 www.winresources.com}}}{
\par
\par This control was created as an exercise to duplicate the look and feel of the Outlook Bar in Microsoft's Outlook '97. The Outlook Bar is basically a vertical men
u. We intend to use the control for a customer's EIS project to allow customers to view/print various statistical/financial reports easily both from a stand-alone EXE or over the company's Intranet using Active Server Pages and ADO technology.
\par The various menus will be for report category and the items on the menu itself will represent the actual report. We have the control displayed at our web site (}{\field{\*\fldinst { HYPERLINK http://www.winresources.com) }{{\*\datafield
00d0c9ea79f9bace118c8200aa004ba90b0200000017000000160000007700770077002e00770069006e007200650073006f00750072006300650073002e0063006f006d0029000000e0c9ea79f9bace118c8200aa004ba90b3c00000068007400740070003a002f002f007700770077002e00770069006e00720065007300
6f00750072006300650073002e0063006f006d0029002f0000000000}}}{\fldrslt {\cs15\ul\cf2 www.winresources.com)}}}{ and go to HotVB. Enclosed is a sample VB5 project conta
ining the control. Note that this must be run using VB5 because VB5CCE does not allow EXE's to be made and I can't send you an EXE made from the Release Candidate 1 beta because of NDA. The sample gives a taste as to possible uses. The first three menu
s
have items that display articles from VB's KnowledgeBase. The fourth menu runs programs from the Accessories program group (NT V4.0). To install the VB5 sample project, just unzip 'VertMenu.zip' into a directory, load the project and run it. To view t
he control in a browser, please go to our web site. Note that our Web page also shows a MaskedEdit control we have developed. This control has the usual types of masked fields.
\par
\par The control uses 2 picture boxes, one for the surface of the control and one
as a cache for the icons. Also, 2 image controls are used for the up and down arrows. The control paints itself and uses several API calls, primarily BitBlt and DrawEdge functions. By using a minimum of controls and designing the control to paint itsel
f, the size of the control is only 81K (pcode) \endash
not bad for an ActiveX control for the Internet. Note that clicking by on one of the menu bars, the menus "slide" just like the Outlook Bar. The control can be configured at design-time using Property Pages
or at run-time under code control. In using the control on an html page, the control is configured using named parameters in the html object. The ActiveX Control Pad was not able to allow the icons to be assigned at design time; embedding the icons in t
he html page greatly confused IE 3.0 and produced GPF's. Named parameters get around this problem and point to a URL .
\par
\par Custom Properties:
\par }\trowd \trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr
\brdrs\brdrw10 \cltxlrtb \cellx2070\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx7920\pard \nowidctlpar\widctlpar\intbl\adjustright {MenusMax\cell The number of menus.\cell }\pard
\nowidctlpar\widctlpar\intbl\adjustright {\row }\trowd \trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl
\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx2070\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx7920\pard \nowidctlpar\widctlpar\intbl\adjustright {
MenuCur\cell The current menu being worked on (at design-time) or the current menu displayed (at run-time).\cell }\pard \nowidctlpar\widctlpar\intbl\adjustright {\row }\pard \nowidctlpar\widctlpar\intbl\adjustright {MenuCaption\cell
The caption of the current menu.\cell }\pard \nowidctlpar\widctlpar\intbl\adjustright {\row }\pard \nowidctlpar\widctlpar\intbl\adjustright {MenuItemsMax\cell The number of items on the current menu.\cell }\pard \nowidctlpar\widctlpar\intbl\adjustright {
\row }\pard \nowidctlpar\widctlpar\intbl\adjustright {MenuItemCur\cell The current menu item being wroked on (at design-time or run-time).\cell }\pard \nowidctlpar\widctlpar\intbl\adjustright {\row }\pard \nowidctlpar\widctlpar\intbl\adjustright {
MenuItemIcon\cell The path\\filename of the icon for the current MenuItem.\cell }\pard \nowidctlpar\widctlpar\intbl\adjustright {\row }\pard \nowidctlpar\widctlpar\intbl\adjustright {MenuItemPictureURL\cell The URL of the icon.\cell }\pard
\nowidctlpar\widctlpar\intbl\adjustright {\row }\pard \nowidctlpar\widctlpar\intbl\adjustright {MenuItemCaption\cell The caption of the current MenuItem.\cell }\pard \nowidctlpar\widctlpar\intbl\adjustright {\row }\trowd \trgaph108\trleft-108\trbrdrt
\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx2070
\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx7920\pard \nowidctlpar\widctlpar\intbl\adjustright {MenuStartup\cell The menu number to display at startup.\cell }\pard
\nowidctlpar\widctlpar\intbl\adjustright {\row }\pard \nowidctlpar\widctlpar\adjustright {
\par Note that the icons can be assigned to a menu item either by pointing to the icon using a path\\icon.ico or using a URL for use in a browser.
\par
\par \page Custom Event:
\par Sub MenuItemClick(Menu as Long, MenuItem as Long)
\par This event is fired when the user clicks on a MenuItem. The Menu parameter corresponds to the current menu displayed and the MenuItem corresponds to the item clicked.
\par
\par
\par The structure of the control uses the following classes:
\par }\trowd \trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr
\brdrs\brdrw10 \cltxlrtb \cellx2070\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx8748\pard \nowidctlpar\widctlpar\intbl\adjustright {Menus\cell
A collection of the menus. This class also paints the control (except for the menu items, which paint themselves) because it "knows" about the state of the menu and because we want the painting to be done as fast as possible.\cell }\pard
\nowidctlpar\widctlpar\intbl\adjustright {\row }\trowd \trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl
\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx2070\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx8748\pard \nowidctlpar\widctlpar\intbl\adjustright {
VMenu\cell The menus.\cell }\pard \nowidctlpar\widctlpar\intbl\adjustright {\row }\pard \nowidctlpar\widctlpar\intbl\adjustright {MenuItems\cell A collection of the MenuItems for each menu.\cell }\pard \nowidctlpar\widctlpar\intbl\adjustright {\row
}\pard \nowidctlpar\widctlpar\intbl\adjustright {MenuItem\cell The menu items.\cell }\pard \nowidctlpar\widctlpar\intbl\adjustright {\row }\trowd \trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr
\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx2070\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb
\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb \cellx8748\pard \nowidctlpar\widctlpar\intbl\adjustright {Arrow\cell The up/down arrows for each menu.\cell }\pard \nowidctlpar\widctlpar\intbl\adjustright {\row }\pard \nowidctlpar\widctlpar\adjustright {
\par
\par }}