|
admin
发表于 2017-1-16 13:47:50
1 创建工作台
2 o( q, S" Y! [* l9 y* {" S k工作台包含其工具栏及其菜单栏。创建工作台作为实例CATCmdWorkbench使用类NewAccess 宏。
( n* y# T+ o: A# L6 tCATCmdWorkbench * CAAAfrGeoCreationWkb :: CreateWorkbench()
3 @( M7 l+ p N) O+ I) a{
$ I# c" q* |) B) I2 L NewAccess(CATCmdWorkbench,pCAAAfrGeoCreationWkb,CAAAfrGeoCreationWkb);
3 K: M6 N! `+ Z2 B ... //见创建容器的工具栏和菜单栏
" |1 g& R7 j4 i: n6 U- w return pCAAAfrGeoCreationWkb;
3 N3 E% @7 X) A; \! V: z}}" J4 _8 w- k& {+ }
pCAAAfrGeoCreationWkb是用来处理工作台实例指针变量,CAAAfrGeoCreationWkb就是工作台标识符。注意,工作台类名和工作台标识符必须相同,才能考虑开始菜单中的工作台资源。它们都以粗体字显示。此标识符还用于命名工作台资源文件CAAAfrGeoCreationWkb.CATNls和CAAAfrGeoCreationWkb.CATRsc。“为工作台创建资源”中介绍了工作台资源以及如何提供它们。
3 F( e g; p7 j
4 \7 l: S7 q7 A6 G( h& [7 \+ q
7 l1 _& a' R1 T! G2 为工具栏和菜单栏创建容器
$ E, d$ ]+ ?! w/ v2 U$ _* N5 e工具栏和菜单栏又是命令和子菜单的容器。6 C( o, L6 d( S( ]* I3 ]
创建工具栏和菜单栏的代码如下:7 h0 i! j, I/ X, [
... ...( U) Q# b- a* t. ~2 d
NewAccess(CATCmdContainer,pCAAAfrSolidEltTlb,CAAAfrSolidEltTlb);
* F! D+ i J, e: V/ i SetAccessChild(pCAAAfrGeoCreationWkb,pCAAAfrSolidEltTlb);! W" I3 [* n/ o4 _: m v
... //见创建固体工具栏内容
9 \% b* R! g* ]8 Q, E+ G, d; Y addToolbarView(pCAAAfrSolidEltTlb,1,Right);/ w( b" f% h2 f- N6 }2 S
5 y9 l G8 a" p5 s2 g T" r `6 Q% o# \ NewAccess(CATCmdContainer,pCAAAfrSurfacicEltTlb,CAAAfrSurfacicEltTlb);/ O" `& u; n. d# [; ]" l: l8 Y% q
SetAccessNext(pCAAAfrSolidEltTlb,pCAAAfrSurfacicEltTlb);" L, n$ g9 Z( I5 z2 ^# f
... //见创建曲面工具栏内容
' N$ t1 ]9 B# g% L. u" A6 [ AddToolbarView(pCAAAfrSurfacicEltTlb,-1,Right);5 @" ~& t u) N8 ]
0 z, a9 m0 d* E2 N# X0 Y" y5 \
NewAccess(CATCmdContainer,pCAAAfrGeoCreationMbr,CAAAfrGeoCreationMbr);6 `- W; p1 U* L9 s* i% c8 s9 y
... //见创建菜单栏内容9 n" E( p3 J; x0 B
SetWorkbenchMenu(pCAAAfrGeoCreationWkb,pCAAAfrGeoCreationMbr);
8 ?4 |' }& O, f# g... ...
! b( N' g. i8 n; P, f这里是发生什么:& o$ e; i1 b# X3 {
实体工具栏作为一个实例创建CATCmdContainer 使用类NewAccess宏。pCAAAfrSolidEltTlb是用于处理实体工具栏命令容器实例的指针的变量,并且CAAAfrSolidEltTlb是用来指它在工作台资源文件的标识符。此标识符在应用程序中可以找到的所有工具栏标识符之间必须是唯一的。实体工具栏使用设置工作台的子SetAccessChild宏,其默认位置是使用定义的AddToolbarView宏,在这里1指实体工具栏默认为可见(-1指不可见),并Right表示该工具栏停靠在右边侧的应用程序窗口。
1 y; c; C* P' L1 A& q+ {曲面工具栏被以相同的方式创建的,但它是使用设置实体工具栏旁SetAccessNext宏。默认情况下它是不可见的(-1表示不可见),并且也停靠在应用程序窗口的右侧。3 d0 t4 ]. m3 u$ O
菜单栏也被创建为实例CATCmdContainer 类被称为使用pCAAAfrGeoCreationMbr 指针。其标识符是CAAAfrGeoCreationMbr,用于其的资源。它被设置为使用工作台的菜单栏 SetWorkbenchMenu宏。8 C3 a; i, P4 \" ?. \2 c
* [: X( I2 r& k+ w( `) T, ?: J3 Q0 ?
G0 Y7 D1 C0 U$ W ]' V Y) b3 创建实体工具栏内容
$ h; v3 d" D5 m
# O+ E- S) w' S5 Z5 m& q! P此工具栏包含四个命令:Cuboid,Sphere,Torus和Cylinder。你应该为每个命令:
* d! j0 M8 V& |" z6 O1 P( u(1)创建使用命令启动NewAccess宏
5 P' k( y! s. c! }7 T {(2)关联命令启动器,使用SetAccessCommand 宏,在定义适当的命令头识别 CreateCommands方法( n9 N# z/ Z) h$ ~
(3)使用排列工具栏中的命令启动 SetAccessChild和SetAccessNext宏" \ Q2 E3 G& ?3 s( u% H
... ...- H( n- ~- ?& m
NewAccess(CATCmdStarter,pCAAAfrTSolidEltCuboidStr,CAAAfrTSolidEltCuboidStr);
' o% K2 L9 }) f5 z! k SetAccessCommand(pCAAAfrTSolidEltCuboidStr,“CAAAfrCuboidHdr”);
7 I) a; M; t7 c7 t3 y# F) Z SetAccessChild(pCAAAfrSolidEltTlb,pCAAAfrTSolidEltCuboidStr);
$ i7 B5 u7 ]3 r- H: c) M t& x7 b& z0 Y m
NewAccess(CATCmdStarter,pCAAAfrTSolidEltSphereStr,CAAAfrTSolidEltSphereStr);
y0 q( D# F7 s, J- I" @ SetAccessCommand(pCAAAfrTSolidEltSphereStr,“CAAAfrSphereHdr”);
* M! e4 q# D$ T. l0 f+ u( ^ SetAccessNext(pCAAAfrTSolidEltCuboidStr,pCAAAfrTSolidEltSphereStr);+ X% H1 R* j) Q) n4 x9 i. o. e
2 C" L0 N! ]: T
NewAccess(CATCmdStarter,pCAAAfrTSolidEltTorusStr,CAAAfrTSolidEltTorusStr);
- m' }5 Y. w6 v+ @* ^& q. I' P8 X SetAccessCommand(pCAAAfrTSolidEltTorusStr,“CAAAfrTorusHdr”);4 g* Q1 s) a- o9 N$ Z
SetAccessNext(pCAAAfrTSolidEltSphereStr,pCAAAfrTSolidEltTorusStr);
* {3 v4 c; V: C
% y/ d5 L& K/ ^! F9 p/ | NewAccess(CATCmdStarter,pCAAAfrTSolidEltCylinder1Str,CAAAfrTSolidEltCylinder1Str);
( q" G6 ]! R7 w4 C$ W SetAccessCommand(pCAAAfrTSolidEltCylinder1Str,“CAAAfrCylinder1Hdr”);" Q( [1 U( c) h3 s3 Z, |
SetAccessNext(pCAAAfrTSolidEltTorusStr,pCAAAfrTSolidEltCylinder1Str);2 J( \+ n& Q, A% a* @& s# u. V
$ X1 `4 d' j3 H6 j7 _; A
NewAccess(CATCmdStarter,pCAAAfrTSolidEltCylinder2Str,CAAAfrTSolidEltCylinder2Str);5 @( }" F; o; N5 D: D
SetAccessCommand(pCAAAfrTSolidEltCylinder2Str,“CAAAfrCylinder2Hdr”);
9 z: h. M) o j& u: v- j SetAccessNext(pCAAAfrTSolidEltCylinder1Str,pCAAAfrTSolidEltCylinder2Str);
# }3 n1 y9 w" o" ]* F. ?... ...' w" b& d% T- N6 {; b
7 X; n* M) [; Q2 O* a) X
每个命令需要三个宏。例如,Cuboid命令处理如下:. |/ s" s$ B# ^' n! Z4 z
首先创建命令启动作为CATCmdStarter使用实例NewAccess宏。pCAAAfrTSolidEltCuboidStr 是用于处理一个指向实例变量,并且 CAAAfrTSolidEltCuboidStr是它的标识。
" B) `0 ?! g6 ~% P1 Y* k$ n然后使用这个命令启动长方体命令头相关联SetAccessCommand宏。第二个参数是定义为命令头导出器的第一个参数的Cuboid命令头标识符。请参阅创建命令头9 N0 n8 i5 P7 q$ F0 e5 E) r0 r: Y
最后将Cuboid命令启动器设置为“实体”工具栏的子项。6 Y: L$ N0 u6 r6 D
继续在为其它命令的相同的方式,不同之处在于它们被设定为下一个使用彼此的SetAccessNext宏。
: ^2 u( _, j! t5 v
' g0 c0 E" M* t3 w9 S6 L3 N; I& A* j
" x; T- R7 S$ I4 创建曲面工具栏内容2 k1 B" ~: g/ @- U1 b+ x& T5 A# S
8 k2 n% U. r0 C6 l7 M) ~) w此工具栏包含三个命令:Revolution Surface,Nurbs Surface和Offset Surface。你应该为每个命令:
+ p! F" o+ H6 r% A4 I2 O创建使用命令启动NewAccess宏
# l+ ~. \' u2 m# K' L X" F关联命令启动器,使用SetAccessCommand 宏,在定义适当的命令头识别 CreateCommands方法
4 R" N. h2 |- p使用排列工具栏中的命令启动 SetAccessChild和SetAccessNext宏
j) o$ v% c8 c+ {... ...
/ r6 o' I5 A$ l+ L$ Y# V; k" I2 H NewAccess(CATCmdStarter,pCAAAfrTSurfRevolStr,CAAAfrTSurfRevolStr);
* e4 O! V5 l& i6 a1 C( t SetAccessCommand(pCAAAfrTSurfRevolStr,“CAAAfrRevolSurfHdr”);0 ^! G. @4 C) t4 n2 I" o1 y. c
SetAccessChild(pCAAAfrSurfacicEltTlb,pCAAAfrTSurfRevolStr);, i7 x9 P, S( z9 W9 F
/ I8 ^5 v2 z4 W; B NewAccess(CATCmdStarter,pCAAAfrTSurfNurbsStr,CAAAfrTSurfNurbsStr);
& _% ]/ u+ V E2 b. }0 i: f SetAccessCommand(pCAAAfrTSurfNurbsStr,“CAAAfrNurbsSurfHdr”);
: ?& e2 T- J' Y' o SetAccessNext(pCAAAfrTSurfRevolStr,pCAAAfrTSurfNurbsStr);
" B# G/ X. i& n2 S! e1 b( B' p [" U/ b; y7 l0 {
NewAccess(CATCmdStarter,pCAAAfrTSurfOffsetStr,CAAAfrTSurfOffsetStr);
) g! G* {- M; Q' ?, o6 U5 ] SetAccessCommand(pCAAAfrTSurfOffsetStr,“CAAAfrOffsetSurfHdr”);
4 b! }$ |! i5 Q, b SetAccessNext(pCAAAfrTSurfNurbsStr,pCAAAfrTSurfOffsetStr);6 @; K% ~9 v% s! _( F! P/ a8 s
... ...
. ]$ U" N; ?/ ] k4 Z每个命令需要三个宏。例如,Revolution Surface命令处理如下:5 \3 F. x9 ^% k' V
首先创建命令启动作为CATCmdStarter使用实例NewAccess宏。pCAAAfrTSurfRevolStr 是用于处理一个指向实例变量,并且 CAAAfrTSurfRevolStr是它的标识。
# d6 [# w9 S9 d3 } Z- ]然后使用这个命令启动的回转面命令头相关联SetAccessCommand宏。第二个参数是Revolution Surface命令头标识符,定义为命令头导出器的第一个参数。请参阅 创建命令头 q& G( l! W6 Q8 A/ g
最后将Revolution Surface命令启动器设置为Surfaces工具栏的子项。1 ~( r5 @- S" b& k, g, H
继续在为其它命令的相同的方式,不同之处在于它们被设定为下一个使用彼此的SetAccessNext宏。8 E; [; f" ?0 y: e3 A
( { e8 L$ S' K1 A( G# M5 创建菜单栏内容
% w6 S" R, \# D" d4 X5 f/ I8 Z菜单和子菜单被创建为CATCmdContainer实例,菜单项被创建为CATCmdStarter实例。当运行时使用车间菜单栏加载或激活工作台时,您创建的菜单栏将合并,本身将导致默认菜单栏(即,没有文档处于活动状态时存在的菜单栏)与一个为车间定义。 您不能从默认菜单栏或为车间定义的菜单栏中删除菜单,也不能更改菜单顺序,也不能修改现有菜单项,也不能将子菜单添加到现有菜单项。您只能添加项在现有菜单的第一级具有子菜单或不是。
* K, w# s" r9 H( z* V. G2 {) ^4 E( R; T, m/ n C: U6 A0 G' b# `& B+ y
创建使用每个菜单和子菜单命令容器 NewAccess宏
e4 U( h9 ^9 J7 H2 R( T3 |创建一个使用每个命令的命令启动NewAccess宏
9 E: W) Q6 @" P; a% |. `关联的每个命令启动器,使用SetAccessCommand 宏,在定义适当的命令头识别 CreateCommands方法
- j% Z" e* Z0 U2 w8 `使用排列菜单命令首发SetAccessChild,和SetAccessNext宏
2 M4 J0 e% n" A) H4 X8 K4 z5 _; |0 h2 ^5 q* S1 A
插入菜单 - 实体子菜单
" `" F9 n! u9 x... ...
. u& f8 f/ {" D4 H0 ], b NewAccess(CATCmdContainer,pCATAfrInsertMnu,CATAfrInsertMnu);0 M5 M0 }5 M* e+ m* \, y' I9 q
SetAccessChild(pCAAAfrGeoCreationMbr,pCATAfrInsertMnu);) x/ d- A4 J1 _7 _" _6 l! q4 q3 E
* I- ]; w% j& K6 l/ O' \' Y+ o- V NewAccess(CATCmdSeparator,pCAAAfrGeoCreationInsertSep,CAAAfrGeoCreationInsertSep);5 m6 O3 K9 Y6 [7 B- D# k
SetAccessChild(pCATAfrInsertMnu,pCAAAfrGeoCreationInsertSep);
* u' j/ V1 V1 c" B* M( o# F* L" x, M% s, D0 W1 } q( f3 P
NewAccess(CATCmdContainer,pCAAAfrSolidEltSnu,CAAAfrSolidEltSnu);
8 ^$ b% l+ m9 ?% A/ P/ P5 n SetAccessNext(pCAAAfrGeoCreationInsertSep,pCAAAfrSolidEltSnu);
& G0 g- c& K. U; K, Z% N/ w- p- J8 n0 N4 m# W1 {* W
NewAccess(CATCmdStarter,pCAAAfrMSolidCuboidStr,CAAAfrMSolidCuboidStr);
% f/ k7 A* [: r SetAccessChild(pCAAAfrSolidEltSnu,pCAAAfrMSolidCuboidStr);) z9 ^9 J% v/ q: e! T( {* n
SetAccessCommand(pCAAAfrMSolidCuboidStr,“CAAAfrCuboidHdr”);
; x- B, O! p5 A# R& x- \ F9 j
+ K0 ~) j; i7 n. F0 N/ } NewAccess(CATCmdStarter,pCAAAfrMSolidSphereStr,CAAAfrMSolidSphereStr);
0 n( m8 T) S- p SetAccessNext(pCAAAfrMSolidCuboidStr,pCAAAfrMSolidSphereStr);
; t$ P% o* u: i, @6 J# @" C% m) ] SetAccessCommand(pCAAAfrMSolidSphereStr,“CAAAfrSphereHdr”);+ s/ w9 t' M" n% T- h1 w# Q
" |0 z- Z1 r! W/ K/ o
NewAccess(CATCmdStarter,pCAAAfrMSolidTorusStr,CAAAfrMSolidTorusStr);+ v* |7 a! k5 ]+ _* O$ v) d7 _
SetAccessNext(pCAAAfrMSolidSphereStr,pCAAAfrMSolidTorusStr);% L; C. p/ ^$ P; [# _
SetAccessCommand(pCAAAfrMSolidTorusStr,“CAAAfrTorusHdr”);
8 `5 P& ^# T; I/ {4 o9 O- G% o. z( C! l
NewAccess(CATCmdStarter,pCAAAfrMSolidCylinder1Str,CAAAfrMSolidCylinder1Str);3 ^( I [# Q$ W; R8 f, v- r
SetAccessNext(pCAAAfrMSolidTorusStr,pCAAAfrMSolidCylinder1Str);0 T! o. r1 K" r% Z3 W
SetAccessCommand(pCAAAfrMSolidCylinder1Str,“CAAAfrCylinder1Hdr”);# C) X; n+ f$ ]5 t+ N% `# Z( b# [
- x# V, S5 B8 W NewAccess(CATCmdStarter,pCAAAfrMSolidCylinder2Str,CAAAfrMSolidCylinder2Str);6 X# E3 b* u `, m
SetAccessNext(pCAAAfrMSolidCylinder1Str,pCAAAfrMSolidCylinder2Str);
' S, r+ h( l8 r" ] T& f9 k SetAccessCommand(pCAAAfrMSolidCylinder2Str,“CAAAfrCylinder2Hdr”);
* g% u4 F, d7 w1 B+ c* f5 [... ...$ N1 O6 K& {3 T O1 R
将创建“插入”菜单命令容器,即使它已经存在。然后创建Solids子菜单命令容器,并将其设置为“插入”菜单命令容器的子代。由于没有给出其他定位信息,它应该位于车间菜单栏的最后一个子菜单或命令之下,即平面命令。然后,创建Cuboid命令启动器并将其设置为Solids子菜单命令容器的子代,并将其他克隆并设置为彼此相邻。
7 p; M$ _5 D( S- d Y插入菜单 - 曲面子菜单% B: P# A; [( d% Z+ ^& m
... ...5 R' s/ S5 P5 s! U$ ~. `* S+ y6 O
NewAccess(CATCmdContainer,pCAAAfrSurfacicEltSnu,CAAAfrSurfacicEltSnu);4 n7 h9 }2 {; r6 {, W
SetAccessNext(pCAAAfrSolidEltSnu,pCAAAfrSurfacicEltSnu);
0 i2 O# z/ }8 A3 p4 v
1 @7 x3 l7 g, w A% e* G$ v7 p" k NewAccess(CATCmdStarter,pCAAAfrMSurfRevolStr,CAAAfrMSurfRevolStr);
9 `, {$ q: k: i2 g( i T SetAccessChild(pCAAAfrSurfacicEltSnu,pCAAAfrMSurfRevolStr);
1 {8 R- j9 l: R SetAccessCommand(pCAAAfrMSurfRevolStr,“CAAAfrRevolSurfHdr”);
1 d& O7 H; J9 P8 j0 l9 c* A; |% [1 }/ ^8 E& G: }
NewAccess(CATCmdStarter,pCAAAfrMSurfNurbsStr,CAAAfrMSurfNurbsStr);
& `+ x/ }! L& |) h8 I$ `4 y+ w SetAccessNext(pCAAAfrMSurfRevolStr,pCAAAfrMSurfNurbsStr);( G% x3 l0 E8 b2 c
SetAccessCommand(pCAAAfrMSurfNurbsStr,“CAAAfrNurbsSurfHdr”);
) u, n8 p: K) @* `" h
) L$ A7 v: N3 a0 O) b2 S3 e NewAccess(CATCmdStarter,pCAAAfrMSurfOffsetStr,CAAAfrMSurfOffsetStr);. w/ c# W+ z B) P, k: u3 w7 s
SetAccessNext(pCAAAfrMSurfNurbsStr,pCAAAfrMSurfOffsetStr);
3 E% s. c5 j+ C, y& i# ~ SetAccessCommand(pCAAAfrMSurfOffsetStr,“CAAAfrOffsetSurfHdr”);) ]7 r, b# V/ M2 ^
... ...
3 j0 o, }1 N' o% B' B. W创建Surfaces子菜单命令容器并将其设置在Solids子菜单命令容器旁边。然后创建Revolution Surface命令启动器,并将其设置为Surfaces子菜单命令容器的子代,其他都是cretaed并且彼此相邻设置。
8 `) H8 l" C1 b3 |1 U1 k创建Workbench的资源中描述了菜单和子菜单资源以及如何提供它们。参见提供了资源和插入工作台到开始菜单的所有资源的概况创建。
- A5 D5 H5 N8 {' C- X+ `
. s1 s& P( C5 H& ]& j' ]提供资源并将工作台插入“开始”菜单8 n9 R% c8 P2 |: \; |
' |3 B# N' N7 e5 t# J- h9 _! b您应该为工作台及其所有内容提供资源。这些资源分类如下:
' {, d" P7 {9 U/ z工作台和命令容器资源,位于两个工作台资源文件中:$ w6 t, V4 R* _# n* w: n
资源文件包含英语的标题和帮助消息,并且可以翻译成其他语言。它使用CATNls作为后缀
# g5 I( w) a) x7 V/ ~资源文件包含不应翻译的图标和其他资源。后缀为CATRsc6 z; k, ]# F) T
资源文件必须具有工作台标识符作为文件名,即CAAAfrGeoCreationWkb。该标识符在声明 CreateWorkbench工作台描述类的方法,作为第三个参数NewAccess创建工作台宏。
9 L- B5 Q/ s2 M+ n' INewAccess(CATCmdWorkbench,pCAAAfrGeoCreationWkb,CAAAfrGeoCreationWkb);
# S% i8 ?2 X$ H, T$ _* v然后,工作台资源文件为CAAAfrGeoCreationWkb.CATNls和CAAAfrGeoCreationWkb.CATRsc。这些文件位于包含工作台模块的框架的CNext \ resources \ msgcatalog目录中。此目录包含子目录,每个语言都可以转换CAAAfrGeoCreationWkb.CATNls文件的标题和消息。资源文件包含:
7 D- O1 [9 w" ?* {' j要显示的标题,消息和图标:工作台 开始菜单
+ \( o0 @- f, D, o7 b, o工具栏:他们的标题
; G8 y; K* l$ @: s菜单和子菜单:其标题,图标和助记符7 t" e) ~7 A: N: R# |9 K
图标框:他们的标题。9 C% c1 v4 ^( l2 m+ b( q
每个资源使用键和文本提供,或者使用没有后缀的文件名,用等号分隔。键被构建为你定义为第三参数的对象标识符的级联 NewAccess宏,一个点,一个关键字指定相应的资源。消息使用双引号括起来并以分号结尾。例如,CAAAfrGeoCreationWkb工作台标题定义如下:, p/ k, z4 Y) X8 F. m2 B' Y
CAAAfrGeoCreationWkb.Title =“CAA V5:Geometrical Creation”;
5 F; c( v; y* |; K0 j) t& H& oCAAAfrGeoCreationWkb.CATNls文件
4 H. k/ F" A& [# f& e. P& G3 D此文件包含:
+ d" h! W/ E5 `9 R, Y对于工作台本身的资源:在使用的标题 开始菜单,其相关的帮助信息,当鼠标移动到工作台图标显示简短的帮助和长帮助1 V" f7 z. J- {1 r, _+ R1 ~( A
工具栏和图标框的标题' d- q, u' ?) D6 B$ b( a
菜单和子菜单的标题和助记符。
+ g0 p' N/ g. q7 y+ L7 w# RCAAAfrGeoCreationWkb.CATNls,如下所示:
4 ~( [. D8 D) | c; }// ------------------------------------------------ ----------------------------: x' w" F& M( g. C6 P
// 工作台# Y$ J2 Z4 p$ j4 Y1 J" \: t# S
// ------------------------------------------------ ----------------------------" V2 o$ ^# A! I8 ]) T/ i: O
CAAAfrGeoCreationWkb.Title =“CAA V5:Geometrical Creation”;
! ]! [7 r2 L# ?6 O0 zCAAAfrGeoCreationWkb.ShortHelp =“工作台创建几何元素”;/ ?" h5 }+ O5 S* ?
CAAAfrGeoCreationWkb.Help =“工作台创建几何,实体和表面元素”;3 J( t9 L O! a- F) M% n
CAAAfrGeoCreationWkb.LongHelp =“这是CAA V5:几何创建工作台。
/ o; ~5 A& O+ x3 n* i+ I( W1 i它用于演示工作台。/ O9 O( [, l' I$ ?/ t0 W
它包含两个工具栏:+ G* j. R; k ]2 u* {( g
- 一个用于某些实体元素
6 d) G* e4 z: k; U- 另一个为一些Surfacic元素“;
) P- e* ]! ^ q; k1 J0 \" R! m9 |" ?, @* H. N+ b5 c
// ------------------------------------------------ ----------------------------
, D% @2 L Y1 h4 e( u$ T9 N//工具栏
) V! A3 c0 O9 q1 U' V% a// ------------------------------------------------ ----------------------------
4 e$ x5 ^! d3 f( o6 KCAAAfrSolidEltTlb.Title =“固体”;
1 w& ?( \, s/ M/ j1 x1 B" @CAAAfrSurfacicEltTlb.Title =“表面”;9 Z( u/ C3 y) R6 G$ V0 L
1 i: i$ j* w* |% V' t
// ------------------------------------------------ ----------------------------
! l! ?/ Q' A. p9 _) I8 p3 E// SUB - MENU* F! i, D+ k& ?' x: x" i2 L
// ------------------------------------------------ ----------------------------' X4 f' U3 ]% b/ _& S! E
CAAAfrSolidEltSnu.Title =“固体”;5 ~# g& g [1 _$ G
CAAAfrSolidEltSnu.Mnemonic =“S”;+ E0 u& l8 J/ q1 j3 h! O1 n
4 E k6 j' c* x7 f: d4 w, { [1 g& vCAAAfrSurfacicEltSnu.Title =“表面”;
- r1 j% C1 U' u% c# aCAAAfrSurfacicEltSnu.Mnemonic =“u”;+ W: s6 J% e* _
CAAAfrGeoCreationWkb.CATRsc文件6 X' J2 ?! J- S6 v7 _7 z" E
此文件包含的类别,即子菜单启动 那里的工作台应该会出现菜单,图标的名称与工作台的关联开始菜单。
$ u0 f$ W6 }" k( ?' UCAAAfrGeoCreationWkb.Category =“基础设施”;
* o9 v- z: n* M1 Z4 C ^ F {! [
2 ^+ W1 D5 x% K6 t' J//欢迎窗口的图标64x64
/ `0 v: V% r. K& d1 i, a: O: KCAAAfrGeoCreationWkb.Icon.NormalPnl =“I_WkAsCAAAfrGeoCreationWkb”;. d, l' J1 R+ {9 {1 r
CAAAfrGeoCreationWkb.Icon.PressedlPnl =“IP_WkAsCAAAfrGeoCreationWkb”;
3 M9 K% N/ Y" X6 @, j! vCAAAfrGeoCreationWkb.Icon.FocusedlPnl =“IF_WkAsCAAAfrGeoCreationWkb”;
( w8 l& x" M4 _$ q1 K5 C
' v4 b# P. O: m7 X6 |2 W//开始菜单的图标32x32
/ d+ p1 p9 O v- h6 q' C: ?4 eCAAAfrGeoCreationWkb.Icon.NormalCtx =“I_WkNvCAAAfrGeoCreationWkb”;: d# ]2 k; c4 b/ x& u" {0 _
CAAAfrGeoCreationWkb.Icon.PressedlCtx =“IP_WkNvCAAAfrGeoCreationWkb”;
& x) y7 z5 E; [7 w1 t5 wCAAAfrGeoCreationWkb.Icon.FocusedlCtx =“IF_WkNvCAAAfrGeoCreationWkb”;
1 Z, J, j3 n2 V3 a) E9 F) c; ^9 q4 h8 M$ r
//工作台工具栏的图标24x24
6 W, m! h- j2 N" k# B2 h( hCAAAfrGeoCreationWkb.Icon.NormalRep =“I_WkCAAAfrGeoCreationWkb”;9 q$ e* P1 f1 h) E, F% Y; N% V2 S0 Y
CAAAfrGeoCreationWkb.Icon.PressedlRep =“IP_WkCAAAfrGeoCreationWkb”;
9 q/ @6 `4 I! K+ V4 |9 Z, k8 {CAAAfrGeoCreationWkb.Icon.FocusedlRep =“IF_WkCAAAfrGeoCreationWkb”;
& w" @; r; w& N- d7 Y! Q正是在这个文件中声明,如果工作台的热启动标准[ 3 ]。CAAGeometry文档不是热启动兼容的,因此它的工作台也不兼容。 7 J* z, D+ m! w% j( j
命令头资源文件中的命令头资源:标题,消息,图标和与命令相关联的加速器。在运行时搜索的资源文件应与命令头类(即CAAAfrGeoCreationWkbHeader)具有相同的名称。
, e, Y- H% W6 M( Z6 q. ECAAAfrGeoCreationWkbHeader.CATNls文件包含以下用于Cuboid命令的文件" @% f6 ~& G# @# ]9 Q" a
CAAAfrGeoCreationWkbHeader.CAAAfrCuboidHdr.Category =“Element”;/ a9 p/ @: ^' G' ?) h
CAAAfrGeoCreationWkbHeader.CAAAfrCuboidHdr.Title =“Cuboid”;
5 b$ L) o5 N+ j( wCAAAfrGeoCreationWkbHeader.CAAAfrCuboidHdr.ShortHelp =“Cuboid”;7 f7 d% [0 p' ^7 D! q
CAAAfrGeoCreationWkbHeader.CAAAfrCuboidHdr.Help =“Cuboid命令尚未实现”;
- k1 G. w" }5 @; g# \CAAAfrGeoCreationWkbHeader.CAAAfrCuboidHdr.LongHelp =“Cuboid(插入菜单)
$ o3 n5 R% v7 a7 k+ q& y5 GCuboid命令允许您创建一个长方体,但尚未实现。
) N+ y5 Y3 |( m7 q6 V8 E... ...
0 E8 ?3 [7 ]4 o5 O. W对于每个命令,标题,短的帮助,帮助和长的帮助被声明。
) N. L1 \2 o8 @* M8 V* Y对于Cuboid命令,CAAAfrGeoCreationWkbHeader.CATRsc文件包括以下内容; q- x$ c0 L8 ]- p
CAAAfrGeoCreationWkbHeader.CAAAfrCuboidHdr.Icon.Normal =“I_CAACube”;4 x8 U* J; D5 ]8 m
... ...
; L* |5 M/ x' t7 @+ i1 Q此图标名称显示在包含Cuboid命令的“实体”工具栏中。该图标也显示在菜单中的菜单项前面。7 o+ ~& o* j. P6 Q8 u' E; l4 g
命令启动程序资源是与命令关联的助记符。它们在运行时自动设置。
" ~9 \. d1 `3 Z7 V. Z5 g, L) e有关国际化和资源的更多信息,请参见国际化您的客户端应用程序。+ _% m1 f* g5 E" ]$ D: z
0 Y# y7 j; ^6 M6 u; _; k6 F
! O* w' W$ J2 j9 h8 M5 V! S$ |$ _* T/ h/ q; V
6 M7 v0 y0 L- n; o- R
|
|