control command trong arcgis engine

Upload: dai-hai-thuy

Post on 06-Jul-2018

216 views

Category:

Documents


0 download

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