control command trong arcgis engine
TRANSCRIPT
-
8/17/2019 Control Command Trong ArcGIS Engine
1/7
Tạo control command trong ArcGIS Engine
Tóm tắtMục tiêu của chủ đề này là hướng dẫn tạo một control command khi phát triển ng dụng!"ng #rc$i% &ngin'(
Control command)ontrol command là các command* tool* tool control* tool%'t* m'nu* +à pal'tt'( )ác n,t-i.'d /oom 0n* -i.'d /oom 1ut hay -ull &.t'nt ch2nh là các command( )ác n,t /oom 0n*/oom 1ut* 3'l'ct -'atutur'% là các tool( )ác control command này đư4c d5ng c5ng +ới các#rc$03 &ngin' control để th6c hi7n nh8ng c9ng +i7c cụ thể( :ạn hoàn toàn c; thể tạo ra cáccontrol command như th< +ào giao cho ch,ng một nhi7m +ụ nh=t đ>nh trong toàn !ộ ngdụng của !ạn(
ArcGIS Engine control?hi !ạn làm +i7c +ới #rc$03 &ngin' c; thể !ạn đ@ Auên thuộc +ới Map)ontrol*Bag'Cayout)ontrol*D ch,ng đư4c gEi là #rc$03 &ngin' control(
Buddy control
FGi +ới các control như H1))ontrol* Hool!ar)ontrol* ch,ng cIn phJi đư4c .ác đ>nh đGi tư4ngđể ch,ng tưKng tác đ* tưKng t6 cho Hool!ar)ontrol cNng cIn c; Map)ontrol để th6chi7n các tưKng tác của các control command( Hrong trưOng h4p này* đGi +ới H1))ontrol*Hool!ar)ontrol th Map)ontrol* Bag'Cayout)ontrol đư4c gEi là các !uddy control(
Hook?hi một command* tool* m'nuD đư4c tạo ta để th6c hi7n hành động* n; cIn đư4c .ác đ>nhđGi tư4ng mà n; %P th6c hi7n hành động trên đ;( Qo đ;* trong khi .Ry d6ng một controlcommand* tại phưKng thc 0)ommand(1n)r'at' !ạn cIn phJi đưa +ào đGi tư4ng ch>u tưKngtác này( Ha gEi đGi tư4ng này là hook( Shư +Ty hook c; thể là Map)ontrol*Bag'Cayout)ontrol* Hool!ar)ontrol hoUc #rcMap(
Tạo command)hủ đề này giới hạn chV dẫn cho +i7c tạo command( Q6a trên ki
-
8/17/2019 Control Command Trong ArcGIS Engine
2/7
FGi +ới tool ngoài +i7c cung c=p int'rLac' 0)ommand !ạn phJi cung c=p thêm int'rLac'0Hool( 3au đ; ta phJi đ>nh ngha cur%or* mou%'* tưKng tác ph2mD
!" t#$a t$ l%& c' () )ác lớp cK %] :a%')ommand* :a%'Hool làm đKn giJn Auá trnh tạo ra các command +à tool(Xai lớp này cung c=p mUc đ>nh các thành +iên của int'rLac' 0)ommand +à 0Hool( ?hi k< th\a
t\ hai lớp này* ta c; %n các thành +iên trong các int'rLac' 0)ommand +à 0Hool( C,c này tachV +i7c o+'rrid' lại các phưKng thc hay thuộc t2nh t\ lớp cK %] th'o mục đ2ch của ta( )ác!ạn ch, là đGi +ới phưKng thc thành +iên 1n)r'at' !et !uộc phJi đư4c o+'rrid' trong lớpdẫn .u=t* tc là ta kh9ng đư4c ! Aua phưKng thc này(
Dùng item tem&late0t'm t'mplat' cNng ch2nh là các lớp đư4c k< th\a t\ lớp :a%')ommand hoUc :a%'Hool(Sgoài +i7c th6c hi7n k< th\a* t'mplat' cWn c; %n một %G đoạn cod' khai !áo +à th6c hi7nmột %G nhi7m +ụ nhưZ)ác thuộc t2nh :itmap* )aption* )at'gory* Sam'* M'%%ag'* +à HoolHip( H\ các khai !áothuộc t2nh này* ta chV cIn nhTp +ào các giá tr> ph5 h4p(Hạo %n các Jnh !itmap* +à Jnh cho cur%or(:ao gbm đoạn cod' o+'rrid' phưKng thc 1n)r'at' để th6c hi7n .ác đ>nh đGi tư4ng hookcho command(BhIn cod' đưa lớp (S't %ang )1M(BhIn cod' th6c hi7n đfng k +ào cat'gory command compon'nt(
Tạo command)ác phIn trên trnh !ày một +ài khái ni7m ta nên !i
-
8/17/2019 Control Command Trong ArcGIS Engine
3/7
wwwv đRy ta gEi chung là hàm* ch,ng ta kh9ng phRn t2ch %6 khác nhau gi8a hàm c; trJ +ề*hay kh9ng trJ +ề `th'o j: gEi là 3u!([C#]public FixedZoomIn(){//
// TODO: Define value fo! "e public p!ope!"ie//bae$m%ca"e&o!' * //locali+able "ex"bae$m%cap"ion * //locali+able "ex"bae$m%mea&e Ti ould ,o!- in.!cap/apCon"!ol/0a&e1a'ou"Con"!ol* //locali+able "ex"bae$m%"oolTip * //locali+able "ex"bae$m%name * //uni2ue id3 non4locali+able (e$&$ 'Ca"e&o!'%'Command)
"!'{//// TODO: can&e bi"map name if necea!'//
"!in& bi"map5eou!ce6ame 7e"T'pe()$6ame 8 $bmp*bae$m%bi"map ne, 9i"map(7e"T'pe()3 bi"map5eou!ce6ame)*ca"c (;xcep"ion ex){9$6e"]0ublic
-
8/17/2019 Control Command Trong ArcGIS Engine
4/7
Biến thành viên Mô tả
m_category Nhóm của command, dùng cho việc sắp xếp, tìm kiếm command.
m_caption Tiêu đề của command, dùng đ hin th!.
m_message "hi ch# cho command, dùng đ hin th!.
m_toolTip "hi ch# hin th! t$ên cùng, cùng v%i m&ssag&.
m_name Tên của command, dùng cho việc sắp xếp, tìm kiếm command.
m_bitmap 'ình (nh dùng hin th! đ)i diện cho command.
Q6a trên các ngha đ;* ta điền các th9ng %G cIn thi
-
8/17/2019 Control Command Trong ArcGIS Engine
5/7
if (m%oo-Aelpe!$.c"ive>ie, null)m%oo-Aelpe! null*ca"c{m%oo-Aelpe! null*
if (m%oo-Aelpe! null)bae$m%enabled fale*elebae$m%enabled "!ue*
// TODO: .dd o"e! ini"iali+a"ion code
j:(S'tBu!lic 1+'rrid'% 3u! 1n)r'at'`:yjal hook #% 1!'ct0L m|hookX'lp'r 0% Sothing Hh'n m|hookX'lp'r } S' XookX'lp'r)la%%
0L Sot hook 0% Sothing Hh'nHrym|hookX'lp'r(Xook } hook0L m|hookX'lp'r(#cti+'ji' 0% Sothing Hh'n m|hookX'lp'r } Sothing)atchm|hookX'lp'r } Sothing&nd Hry
~Qi%a!l' iL hook Lail%0L m|hookX'lp'r 0% Sothing Hh'nMy:a%'(m|'na!l'd } -al%'
&l%'My:a%'(m|'na!l'd } Hru'&nd 0L
~H1Q1Z #dd oth'r initialiation cod'&nd 0L &nd 3u!
Hh'o mục đ2ch của ta hi7n tại* ta kh9ng cIn phJi chVnh %a ] phIn này* nhưng trên th6c t<phát triển ng dụng của các !ạn* ch,ng ta c; thể thêm m@ . l trong phIn ?TODO: .ddo"e! ini"iali+a"ion code $
Huy +Ty ta %P c5ng tm hiểu Aua ngha của đoạn m@ này(
FGi +ới )FIu tiên đoạn m@ %P kiểm tra .'m đGi tư4ng hook c; null kh9ng( S
-
8/17/2019 Control Command Trong ArcGIS Engine
6/7
truyền đGi tư4ng hook +ào đGi tư4ng m|hookX'lp'r(QWng l7nh ti
-
8/17/2019 Control Command Trong ArcGIS Engine
7/7
//&e" "e apCon"!olm%mapCon"!ol (IapCon"!olB)axapCon"!ol$Ob@ec"*
//diable "e