Ê×Ò³ | ͨÐÐÖ¤ | ÂÛ̳ | BLOG | ÊéÆÀ | ¿ª·¢ÎÄÕ | È˲ÅÕÐÆ¸ | ×ÊѶ | ¹¤¾ßÏÂÔØ | Ô´ÂëÏÂÔØ | ÏîÄ¿½»Ò× | ÐËȤС×é | ÍøÓÑ×÷Æ· | CÓïÑÔÊÔÌâ²âÊÔ | ×ÊÔ´¹²Ïí | ACMÌâ¿â

×¢²áлáÔ±

ÇëµÇ½»òÕß×¢²áÐÂÓû§   Óû§Ãû    ÃÜ  Âë   ¼ÇסÃÜÂë  ×¢²áÐÂÓû§  Íü¼ÇÃÜÂëÁË

 ÄúËùÔÚλÖãºÂÛ̳Ê×Ò³ ¡ª Visual Basic ¡ª º¬Ð¦²»ÓÒìÐÍ´°Ìå´úÂëÖð¾äÏê½â,Çë¸ßÊÖÖ¸½ÌµãÆÀ,²ËÄñ·ÖÏí
 ±¾ÌûµØÖ·£º http://bbs.pfan.cn/post-264548.html [¸´ÖƵØÖ·] [ËÑË÷Ïà¹ØÌû×Ó]
  ·¢ Ð Ìû   »Ø Ìû   ¿ìËÙ»ØÌû
 Ö÷Ì⣺º¬Ð¦²»ÓÒìÐÍ´°Ìå´úÂëÖð¾äÏê½â,Çë¸ßÊÖÖ¸½ÌµãÆÀ,²ËÄñ·ÖÏí
×÷Õߣºº¬Ð¦²»Óï
ר¼Ò·Ö£º50
¼¶±ð:1
 »áÔ±ÐÅÏ¢
 ·¢¶ÌÏûÏ¢
 ËùÊôBLOG
Â¥Ö÷
ÔÚ×ÔѧVB¹ý³ÌÖÐ,ÎÒÓöµ½Ðí¶àÀ§ÄÑ,ºÜ¶à½Ì²ÄÓïÑɲ»Ïê,ÈÃÉíΪ²ËÄñµÄÎÒ³Ô¹»ÁË¿àÍ·!ÌØ·¢´ËÌû,×÷ΪÎÒµÄVB×ÔѧϵÁбʼÇÖ®Ò»£¬Ï£ÍûÄܸø¹ã´óVB²ËÄñͬÈÊ´øÀ´°ïÖú!
                                        ------------------º¬Ð¦²»Óï 2008-1-6
                   ÌرðÃùл  btxdlibin´ó´ó  tanchuhan´ó´ó  merry05´ó´ó  

            ÊµÀý1   ÒìÐÍ´°Ìå

1.½¨Form1,Ìí¼Ó2¸öCommandButton,Caption1="Íâ±ßΪԲ½Ç¾ØÐÎ,Àï±ßΪÍÖԲ͸Ã÷¶´µÄ´°Ìå" Caption2="ÖмäÓÐÍÖԲ͸Ã÷¶´µÄ´°Ìå"
  Ìí¼ÓFrom2, Caption="ÖмäÓÐÍÖԲ͸Ã÷¶´µÄ´°Ìå" , BackColor=&H00FFFF80&

2.Form1´úÂë:

Option Explicit  '(×¢ÊÍ1)
    Private Declare Function CreateRectRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long  '(×¢ÊÍ2) ÓÃAPIº¯Êý CreateRectRgn ´´½¨¼ô²ÃÇøÓò,ÓÃÀ´ÔÚÉϱ߽¨Á¢¸÷ÖÖÒìÐÍ´°Ìå
    Private Declare Function CreateRoundRectRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long) As Long'(×¢ÊÍ3)ÓÃAPIº¯Êý CreateRoundRectRgn´´½¨Íâ±ßµÄÔ² ½Ç¾ØÐÎ
    Private Declare Function CreateEllipticRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long '(×¢ÊÍ4) ÓÃAPIº¯Êý CreateEllipticRgn ´´½¨Àï±ßµÄÍÖÔ²
    Private Declare Function CombineRgn Lib "gdi32" (ByVal hDestRgn As Long, ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long, ByVal nCombineMode As Long) As Long'(×¢ÊÍ5) ÓÃAPIº¯Êý CombineRgn ½«Á½¸öÇøÓò×éºÏÔÚÒ»Æð
    Private Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As long) As Long'(×¢ÊÍ6) ÓÃAPIº¯Êý SetWindowRgn ½«×éºÏÔÚÒ»ÆðµÄÇøÓò´´½¨ÎªÐÂÇøÓò
    Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long'(×¢ÊÍ7) É¾³ý´´½¨µÄÐÂÇøÓò
    Private Const RGN_DIFF = 4'(×¢ÊÍ8)ÓÃConst½«RGN_DIFFÉùÃ÷Ϊ³£Êý4£¬¼´½«Á½¸öÇøÓòÏà¼õ
    Private OutRgn As Long  'ÉùÃ÷±äÁ¿Íâ±ßÔ²½Ç¾ØÐÎOutRgnµÄÊý¾ÝÀàÐÍΪLong£¨³¤ÕûÐÍ£©
    Private InRgn  As Long  'ÉùÃ÷±äÁ¿Àï±ßÍÖÔ²InRgnµÄÊý¾ÝÀàÐÍΪLong£¨³¤ÕûÐÍ£©
    Private MyRgn As Long   'ÉùÃ÷±äÁ¿´´½¨µÄÐÂÇøÓòMyRgnµÄÊý¾ÝÀàÐÍΪLong£¨³¤ÕûÐÍ£©

Private Sub Command1_Click()
     If OutRgn <> 0 And InRgn <> 0 And MyRgn <> 0 Then Exit Sub     '  (×¢ÊÍ9)·ÀÖ¹ÖØ¸´´´½¨Í¼ÐÎ
     Dim w As Long, h As Long      'ÉùÃ÷±äÁ¿w,hµÄÊý¾ÝÀàÐÍΪLong£¨³¤ÕûÐÍ£©
     w = ScaleX(Form1.Width, vbTwips, vbPixels)    '  (×¢ÊÍ10)  ½«Form1µÄ´°Ìå¿í¶ÈÓÉç¾±äΪÏñËØÖµºó¸³¸ø±äÁ¿W
     h = ScaleY(Form1.Height, vbTwips, vbPixels)    '½«Form1µÄ´°Ìå¸ß¶ÈÓÉç¾±äΪÏñËØÖµºó¸³¸ø±äÁ¿h
     MyRgn = CreateRectRgn(0, 0, 0, 0)    'ÓÃAPIº¯Êý CreateRectRgn ´´½¨¼ô²ÃÇøÓòMyRgn
     OutRgn = CreateRoundRectRgn(30, 30, w - 30, h - 30, 100, 100)     'ÓÃAPIº¯Êý CreateRoundRectRgn ´´½¨Ô²½Ç¾ØÐÎOutRgn
     InRgn = CreateEllipticRgn(100, 100, w - 100, h - 100)     'ÓÃAPIº¯Êý CreateEllipticRgn ´´½¨ÍÖÔ²InRgn
     Call CombineRgn(MyRgn, OutRgn, InRgn, RGN_DIFF)     '(×¢ÊÍ11)½«Ô²½Ç¾ØÐÎÇøÓòOutRgnÖв»ÊôÓÚÍÖÔ²InRgnµÄÇøÓòºÏ²¢µ½MyRgn
     Call SetWindowRgn(Form1.hWnd, MyRgn, True)     'ÔÚForm1ÖÐÒÔMyRgnΪ¾ä±ú´´½¨ÐÂÇøÓò
     Form1.BackColor = QBColor(4)     '(×¢ÊÍ12)½«Form1µÄ±³¾°É«ÉèÖÃΪºìÉ«
End Sub

Private Sub Command2_Click()
     Form2.Show     'ÏÔʾForm2
End Sub

Private Sub Form_Load()
     OutRgn = 0    '¼ÓÔØ´°ÌåForm1ʱ½«ÇøÓòOutRgnÉèÖÃΪ0
     InRgn = 0    '¼ÓÔØ´°ÌåForm1ʱ½«ÇøÓòInRgnÉèÖÃΪ0
     MyRgn = 0    '¼ÓÔØ´°ÌåForm1ʱ½«ÇøÓòMyRgn ÉèÖÃΪ0
End Sub

Private Sub Form_Unload(Cancel As Integer)
     If MyRgn <> 0 Then DeleteObject MyRgn   'Ð¶ÔØ´°ÌåForm1ʱÈç¹ûÇøÓòMyRgn²»Îª0Ôòɾ³ýMyRgn
     If OutRgn <> 0 Then DeleteObject OutRgn   'Ð¶ÔØ´°ÌåForm1ʱÈç¹ûÇøÓòOutRgn²»Îª0Ôòɾ³ýOutRgn
     If InRgn <> 0 Then DeleteObject InRgn   'Ð¶ÔØ´°ÌåForm1ʱÈç¹ûÇøÓòInRgn²»Îª0Ôòɾ³ýInRgn
End Sub
   




Form2´úÂë:

Option Explicit'(×¢ÊÍ1)
    Private Declare Function CreateRectRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long'(×¢ÊÍ2) ÓÃAPIº¯Êý CreateRectRgn ´´½¨¼ô²ÃÇøÓò,ÓÃÀ´ÔÚÉϱ߽¨Á¢¸÷ÖÖÒìÐÍ´°Ìå
    Private Declare Function CreateEllipticRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long,ByVal Y2 As Long) As Long'(×¢ÊÍ4) ÓÃAPIº¯Êý CreateEllipticRgn ´´½¨Àï±ßµÄÍÖÔ²
    Private Declare Function CombineRgn Lib "gdi32" (ByVal hDestRgn As Long, ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long, ByVal nCombineMode As Long) As Long'(×¢ÊÍ5) ÓÃAPIº¯Êý CombineRgn ½«Á½¸öÇøÓò×éºÏÔÚÒ»Æð
    Private Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Long) As Long'(×¢ÊÍ6) ÓÃAPIº¯Êý SetWindowRgn ½«×éºÏÔÚÒ»ÆðµÄÇøÓò´´½¨ÎªÐÂÇøÓò

Private Sub Form_Resize()    '(×¢ÊÍ13)ÓÃForm_Resize()ʼþÉèÖÿؼþµÄÊôÐÔ
     Const RGN_DIFF = 4    '(×¢ÊÍ8)ÓÃConst½«RGN_DIFFÉùÃ÷Ϊ³£Êý4£¬¼´½«Á½¸öÇøÓòÏà¼õ 
     Dim outer_rgn As Long     'ÉùÃ÷±äÁ¿outer_rgnΪLongÐÍ£¨³¤ÕûÐÍ£©
     Dim inner_rgn As Long    'ÉùÃ÷±äÁ¿inner_rgnΪLongÐÍ£¨³¤ÕûÐÍ£©
     Dim combined_rgn As Long    'ÉùÃ÷±äÁ¿combined_rgnΪLongÐÍ£¨³¤ÕûÐÍ£©
     Dim wid As Single        'ÉùÃ÷±äÁ¿widΪSingleÐÍ£¨µ¥¾«¶È¸¡µãÊý£©
     Dim hgt As Single        'ÉùÃ÷±äÁ¿hgtΪSingleÐÍ£¨µ¥¾«¶È¸¡µãÊý£©
     Dim border_width As Single     'ÉùÃ÷±äÁ¿border_widthΪSingleÐÍ£¨µ¥¾«¶È¸¡µãÊý£©
     Dim title_height As Single     'ÉùÃ÷±äÁ¿title_heightΪSingleÐÍ£¨µ¥¾«¶È¸¡µãÊý£©
     If WindowState = vbMinimized Then Exit Sub      '(×¢ÊÍ14)Èç¹û´°¿Ú×îС»¯ÄÇô¾ÍÍ˳ö.£¨´°¿Ú×îС»¯µÄ»°,¾ÍûÓÐ×ø±êÀ´´´½¨Í¼ÐÎÁË£©
     Me.ScaleMode = 3      '½«Form2µÄScaleModeÊôÐÔÉèÖÃΪ3£¬·ñÔòµÄ»°£¬Form2ÓпÉÄܱàÒëͨ²»¹ý£¡
     wid = ScaleX(Width, vbTwips, vbPixels)      '  (×¢ÊÍ10)  ½«Form2µÄ´°Ìå¿í¶ÈÓÉç¾±äΪÏñËØÖµºó¸³¸ø±äÁ¿wid
     hgt = ScaleY(Height, vbTwips, vbPixels)     '  (×¢ÊÍ10)  ½«Form2µÄ´°Ìå¸ß¶ÈÓÉç¾±äΪÏñËØÖµºó¸³¸ø±äÁ¿ hgt
     outer_rgn = CreateRectRgn(0, 0, wid, hgt)     '(×¢ÊÍ2) ÓÃAPIº¯Êý CreateRectRgn ´´½¨Íâ±ßµÄ¾ØÐδ°Ìå
     border_width = (wid - ScaleWidth) / 2      '(×¢ÊÍ15)¼ÆËã´°ÌåForm2±ß¿ò¿í¶È
     title_height = hgt - border_width - ScaleHeight      '(×¢ÊÍ16)¼ÆËã´°ÌåForm2±êÌâÀ¸¸ß¶È
     inner_rgn = CreateEllipticRgn(border_width + ScaleWidth * 0.1, title_height + ScaleHeight * 0.1, ScaleWidth *       0.9, ScaleHeight * 0.9)     '(×¢ÊÍ17) ÓàAPIº¯Êý CreateEllipticRgn ´´½¨Àï±ßµÄÍÖÔ²
     combined_rgn = CreateRectRgn(0, 0, 0, 0)     '(×¢ÊÍ2) ÓÃAPIº¯Êý CreateRectRgn ´´½¨¼ô²ÃÇøÓò,ÓÃÀ´ÔÚÉϱ߽¨Á¢¸÷ÖÖÒìÐÍ´°Ìå
     CombineRgn combined_rgn, outer_rgn,inner_rgn, RGN_DIFF     '(×¢ÊÍ11)½«¾ØÐÎÇøÓòouter_rgnÖв»ÊôÓÚÍÖÔ²inner_rgnµÄÇøÓòºÏ²¢µ½combined_rgnÖÐ
     SetWindowRgn hWnd, combined_rgn, True        'ÔÚForm2ÖÐÒÔcombined_rgnΪ¾ä±ú´´½¨ÐÂÇøÓò
End Sub

 

0
×÷Õߣºº¬Ð¦²»Óï
ר¼Ò·Ö£º50
¼¶±ð:1

·¢±íʱ¼ä£º2008-1-6 19:40:00    [»Ø¸´]  [ÒýÓÃ]
1 Â¥  

×¢ÊÍ1:  Option Explicit Óï¾ä 



ÓÃÓÚÔÚÎļþ¼¶(¼´Ò»¶ÎÍêÕûµÄ³ÌÐò´úÂëÖÐ)Ç¿ÖÆ¶Ô¸ÃÎļþÖеÄËùÓбäÁ¿½øÐÐÏÔʽÉùÃ÷¡£ 

Option Explicit { On | Off } 

On 
¿ÉÑ¡¡£ÆôÓàOption Explicit ¼ì²é¡£Èç¹ûÔÚ Option Explicit Óï¾äºóûÓÐÖ¸¶¨ On »ò Off£¬ÔòĬÈÏΪ On¡£ 
Off 
¿ÉÑ¡¡£½ûÓàOption Explicit ¼ì²é¡£ 

±¸×¢ 

Èç¹ûʹÓã¬Ôò Option Explicit Óï¾ä±ØÐë³öÏÖÔÚÎļþÖÐÆäËûËùÓÐÔ´Óï¾ä֮ǰ¡£ 

µ± Option Explicit ³öÏÖÔÚÎļþÖÐʱ£¬±ØÐëʹÓàDim¡¢Private¡¢Public »ò ReDim Óï¾äÏÔʽÉùÃ÷ËùÓбäÁ¿¡£ÊÔͼʹÓÃδÉùÃ÷µÄ±äÁ¿Ãû½«·¢Éú±àÒëʱ´íÎó¡£ 

Èç¹ûûÓÐʹÓàOption Explicit Óï¾ä£¬ÔòËùÓÐδÉùÃ÷µÄ±äÁ¿¶¼ÊÇ Object ÀàÐÍ¡£ 

×¢Òâ Ê¹ÓàOption Explicit ¿É±ÜÃâÆ´´íÏÖÓбäÁ¿µÄÃû³Æ£¬»ò±ÜÃâÔÚ±äÁ¿·¶Î§²»Çå³þµÄ´úÂëÖвúÉú»ìÏý¡£Èç¹û´úÂëÖÐûÓÐÖ¸¶¨ Option Explicit£¬±àÒëÆ÷µÄĬÈÏÉèÖý«ÊÇ Option Explicit On¡£
²¹³ä:Ç¿ÖÆÉùÃ÷£¬ÒòΪVBµÄ±äÁ¿ÊÇ¿ÉÒÔ²»ÉùÃ÷¶øÖ±½ÓʹÓõ쬵«ÊÇÕâÑù¿ÉÄÜ»áÔì³ÉһЩĪÃûÆæÃîµÄÒþº¬´íÎ󣬻¹ºÜÄÑÅŲ飬ÓÃÁËÕâ¸öÓï¾äºóËùÓеıäÁ¿¶¼Òª×ñÑ­ÏÈÉùÃ÷ºóÒýÓÃµÄ¹æ¾Ø£¬ÕâÑù¾Í±ÜÃâÁËһЩ²»±ØÒªµÄÂé·³£¬ÕâÊÇÒ»¸öÁ¼ºÃµÄ±àÂëϰ¹ß¡£

 

×÷Õߣºº¬Ð¦²»Óï
ר¼Ò·Ö£º50
¼¶±ð:1

·¢±íʱ¼ä£º2008-1-6 19:45:00    [»Ø¸´]  [ÒýÓÃ]
2 Â¥  
×¢ÊÍ2:  Private Declare Function CreateRectRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long 


  1). vb ÖÐdeclareµÄʹÓ÷½·¨

  VBÀïµÄ˵Ã÷Óï¾ä£¨Declare£©£¬½öÖ§³Ö¶¯Ì¬Á´½á¿â£¨DLL£©µÄ×Ó³ÌÐòºÍÎÞ±äÁ¿º¯Êý¡£ 
VB³ÌÐòҪʹÓÃDLLÖеĺ¯Êý£¬Ê×ÏȱØÐëÒªÓÐÌØÊâµÄÉùÃ÷£¬ÓÃDeclareÉùÃ÷Óï¾äÔÚ´°Ìå¼¶»òÄ£¿é¼¶»òÈ«¾ÖÄ£¿éµÄ´úÂëÉùÃ÷¶Î½øÐÐÉùÃ÷£¬½«¶¯Ì¬Á´½Ó¿âÖеĺ¯ÊýÉùÃ÷µ½VBÖУ¬¹©VB³ÌÐòµ÷Óᣠ
Óï¾ä¸ñʽΪ£ºDeclare Sub ¹ý³ÌÃûLib [ Alias " ±ðÃû]£¨[ByVal ²ÎÊýASÀàÐÍ]£©£¬»òΪDeclare Functionº¯ÊýÃûLib [Alias " ±ðÃû]£¨[ByVal ²ÎÊýASÀàÐÍ]£©ASÀàÐÍ         ÔÚÉùÃ÷ÖÐÊ×ÏÈÓÃDeclare¹Ø¼ü×Ö±íʾÉùÃ÷DLLÖеĺ¯Êý¡£

  2).Funtion ¹ý³Ì 

  Visual Basic °üº¬ÄÚÖõġ¢»òÄÚ²¿µÄº¯Êý£¬Èç Sqr¡¢Cos »ò Chr¡£´ËÍ⣬»¹¿ÉÓàFunction Óï¾ä±àд×Ô¼ºµÄ Function ¹ý³Ì¡£ 

º¯Êý¹ý³ÌµÄÓï·¨ÊÇ£º 

Private |Public] [Static] Function procedurename (arguments) [As type] 
statements 

End Function 

Óë Sub ¹ý³ÌÒ»Ñù£¬Function ¹ý³ÌÒ²ÊÇÒ»¸ö¶ÀÁ¢µÄ¹ý³Ì£¬¿É¶ÁÈ¡²ÎÊý¡¢Ö´ÐÐһϵÁÐÓï¾ä²¢¸Ä±äÆä²ÎÊýµÄÖµ¡£Óë×Ó¹ý³Ì²»Í¬£¬Function ¹ý³Ì¿É·µ»ØÒ»¸öÖµµ½µ÷ÓõĹý³Ì¡£ÔÚSub ¹ý³ÌÓëFunction ¹ý³ÌÖ®¼äÓÐÈýµãÇø±ð£º 

1.Ò»°ã˵À´£¬ÈýϴóµÄÓï¾ä»ò±í´ïʽµÄÓұ߰üº¬function¹ý³ÌÃûºÍ²ÎÊý (returnvalue = function)£¬Õâ¾Íµ÷ÓÃÁËfunctionº¯Êý¡£ 


2.function¹ý³ÌÓë±äÁ¿ÍêȫһÑù£¬º¯Êý¹ý³ÌÓÐÊý¾ÝÀàÐÍ¡£Õâ¾Í¾ö¶¨ÁË·µ»ØÖµµÄÀàÐÍ¡££¨Èç¹ûûÓРAs ×Ӿ䣬ȱʡµÄÊý¾ÝÀàÐÍΪ Variant¡££© 


3.¸øprocedurename(Function ¹ý³ÌÃû)×ÔÉí¸³Ò»¸öÖµ£¬¾Í¿É·µ»ØÕâ¸öÖµ¡£Function ¹ý³Ì·µ»ØÒ»¸öֵʱ£¬¸ÃÖµ¿É³ÉΪ½Ï´ó±í´ïʽµÄÒ»²¿·Ö¡£ 


ÀýÈ磬ÏÂÃæÊÇÒÑÖªÖ±½ÇÈý½ÇÐÎÁ½Ö±½Ç±ßµÄÖµ£¬¼ÆËãµÚÈý±ß£¨Ð±±ß£©µÄº¯Êý£º 

Function Hypotenuse (A As Integer, B As Integer) As String 
Hypotenuse = Sqr (A ^ 2 + B ^ 2) 
End Function 

ÔÚ Visual Basic Öе÷ÓàFunction ¹ý³ÌµÄ·½·¨ºÍµ÷ÓÃÈκÎÄÚ²¿º¯ÊýµÄ·½·¨ÊÇÒ»ÑùµÄ

sub Ö´ÐÐÍê³ÌÐò´úÂëºó¾ÍÖ±½Ó·µ»ØÁË,²»»á´ø»ØÊýÖµ¡£¶øfunctionÖ´ÐÐÍê´úÂëºó¿ÉÒÔ·µ»ØÒ»¸öÖµ£¬ÓÃÀ´·µ»ØÒ»¸ö¼ÆËã½á¹ûµÈÊý×Ö¡£ 
ÀýÈ磺 
function sum(a,b) 
sum=a+n 
end function 

¿ÉÒÔµ÷ÓÃΪ£º 
a=1 
b=2 
c=sum(a,b) 

ÔËÐкóc=3 
¶øsubÔò²»ÄÜÓá°±äÁ¿=³ÌÐòÃû ¡±À´µ÷Óá£

²¹³ä£º   
  Sub   ¹ý³Ì   
    
    
  ×Ó¹ý³ÌÊÇÔÚÏìӦʼþʱִÐеĴúÂë¿é¡£½«Ä£¿éÖеĴúÂë·Ö³É×Ó¹ý³Ìºó£¬ÔÚÓ¦ÓóÌÐòÖвéÕÒºÍÐ޸ĴúÂë±äµÃ¸üÈÝÒ×ÁË¡£   
    
  ×Ó¹ý³ÌµÄÓï·¨ÊÇ£º   
    
  [Private|Public][Static]Sub   procedurename   (arguments)   
  statements   
    
  End   Sub   
    
  Ã¿´Îµ÷Óùý³Ì¶¼»áÖ´ÐР  Sub   ºÍ   End   Sub   Ö®¼äµÄ   statements¡£¿ÉÒÔ½«×Ó¹ý³Ì·ÅÈë±ê׼ģ¿é¡¢ÀàÄ£¿éºÍ´°ÌåÄ£¿éÖС£°´ÕÕȱʡ¹æ¶¨£¬ËùÓÐÄ£¿éÖеÄ×Ó¹ý³ÌΪ   Public£¨¹«Óõģ©£¬ÕâÒâζ×ÅÔÚÓ¦ÓóÌÐòÖпÉËæ´¦µ÷ÓÃËüÃÇ¡£   
    
  ¹ý³ÌµÄ   arguments   ÀàËÆÓÚ±äÁ¿ÉùÃ÷£¬ËüÉùÃ÷ÁË´Óµ÷Óùý³Ì´«µÝ½øÀ´µÄÖµ¡£   
    
  ÔÚ   Visual   Basic   ÖÐÓ¦Çø·ÖͨÓùý³ÌºÍʼþ¹ý³ÌÕâÁ½Àà×Ó¹ý³Ì¡£   
    
  1.ͨÓùý³Ì   


  Í¨Óùý³Ì¸æËßÓ¦ÓóÌÐòÈçºÎÍê³ÉÒ»ÏîÖ¸¶¨µÄÈÎÎñ¡£Ò»µ©È·¶¨ÁËͨÓùý³Ì£¬¾Í±ØÐëרÓÉÓ¦ÓóÌÐòÀ´µ÷Ó᣷´Ö®£¬Ö±µ½ÎªÏìÓ¦Óû§Òý·¢µÄʼþ»òϵͳÒý·¢µÄʼþ¶øµ÷ÓÃʼþ¹ý³Ìʱ£¬Ê¼þ¹ý³Ìͨ³£×ÜÊÇ´¦ÓÚ¿ÕÏÐ״̬¡£   
    
  ÎªÊ²Ã´Òª½¨Á¢Í¨Óùý³ÌÄØ£¿ÀíÓÉÖ®Ò»¾ÍÊÇ£¬¼¸¸ö²»Í¬µÄʼþ¹ý³ÌÒ²ÐíÒªÖ´ÐÐͬÑùµÄ¶¯×÷¡£½«¹«¹²Óï¾ä·ÅÈëÒ»·ÖÀ뿪µÄ¹ý³Ì£¨Í¨Óùý³Ì£©²¢ÓÉʼþ¹ý³ÌÀ´µ÷ÓÃËü£¬³ÏΪ±à³ÌÉϲߡ£ÕâÑùÒ»À´¾Í²»±ØÖظ´´úÂ룬ҲÈÝÒ×ά»¤Ó¦ÓóÌÐò¡£ÀýÈ磬VCR   Ê¾ÀýÓ¦ÓóÌÐòʹÓÃÁËÒ»¸öͨÓùý³Ì£¬¼¸¸ö²»Í¬¹ö¶¯°´Å¥µÄ   Click   Ê¼þ¶¼µ÷ÓÃÕâ¸öͨÓùý³Ì¡£Í¼   5.7   ËµÃ÷ÁËͨÓùý³ÌµÄʹÓá£Click   Ê¼þÖеĴúÂëµ÷Óð´Å¥¹ÜÀíÆ÷µÄ×Ó¹ý³Ì£¬×Ó¹ý³ÌÔËÐÐ×ÔÉíµÄ´úÂ룬Ȼºó½«¿ØÖÆ·µ»Øµ½   Click   Ê¼þ¹ý³Ì¡£   
    
       
  2.ʼþ¹ý³Ì 

  
  µ±   Visual   Basic   ÖеĶÔÏó¶ÔÒ»¸öʼþµÄ·¢Éú×÷³öÈ϶¨Ê±£¬±ã×Ô¶¯ÓÃÏàÓ¦ÓÚʼþµÄÃû×Öµ÷ÓøÃʼþµÄ¹ý³Ì¡£ÒòΪÃû×ÖÔÚ¶ÔÏóºÍ´úÂëÖ®¼ä½¨Á¢ÁËÁªÏµ£¬ËùÒÔ˵ʼþ¹ý³ÌÊǸ½¼ÓÔÚ´°ÌåºÍ¿Ø¼þÉϵġ£     
    
  Ò»¸ö¿Ø¼þµÄʼþ¹ý³Ì½«¿Ø¼þµÄ£¨ÔÚ   Name   ÊôÐÔÖй涨µÄ£©Êµ¼ÊÃû×Ö¡¢Ï»®Ïß   (_)   ºÍʼþÃû×éºÏÆðÀ´¡£ÀýÈ磬Èç¹ûÏ£ÍûÔÚµ¥»÷ÁËÒ»¸öÃûΪ   cmdPlay   µÄÃüÁî°´Å¥Ö®ºó£¬Õâ¸ö°´Å¥»áµ÷ÓÃʼþ¹ý³Ì£¬ÔòҪʹÓà  cmdPlay_Click   ¹ý³Ì¡£   
    
    
  Ò»¸ö´°Ìåʼþ¹ý³Ì½«´Ê»ã   "Form"¡¢Ï»®ÏߺÍʼþÃû×éºÏÆðÀ´¡£Èç¹ûÏ£ÍûÔÚµ¥»÷´°ÌåÖ®ºó£¬´°Ìå»áµ÷ÓÃʼþ¹ý³Ì£¬ÔòҪʹÓà  Form_Click   ¹ý³Ì¡££¨ºÍ¿Ø¼þÒ»Ñù£¬´°ÌåÒ²ÓÐΨһµÄÃû×Ö£¬µ«²»ÄÜÔÚʼþ¹ý³ÌµÄÃû×ÖÖÐʹÓÃÕâЩÃû×Ö¡££©Èç¹ûÕýÔÚʹÓà  MDI   ´°Ì壬Ôòʼþ¹ý³Ì½«´Ê»ã   "   MDIForm   "   ¡¢Ï»®ÏߺÍʼþÃû×éºÏÆðÀ´£¬Èç   MDIForm_Load¡£     
  ËùÓеÄʼþ¹ý³ÌʹÓÃÏàͬµÄÓï·¨¡£   
    
  ¿Ø¼þʼþµÄÓï·¨   ´°ÌåʼþµÄÓï·¨     
  Private   Sub   controlname_eventname   (arguments   )   
  statements     
  End   Sub   
    Private   Sub   Form_eventname   (arguments)   
  statements   
  End   Sub     
    
    
  ËäÈ»¿ÉÒÔ×Ô¼º±àдʼþ¹ý³Ì£¬µ«Ê¹Óà  Visual   Basic   ÌṩµÄ´úÂë¹ý³Ì»á¸ü·½±ã£¬Õâ¸ö¹ý³Ì×Ô¶¯½«ÕýÈ·µÄ¹ý³ÌÃû°üÀ¨½øÀ´¡£´Ó¡°¶ÔÏó¿ò¡±ÖÐÑ¡ÔñÒ»¸ö¶ÔÏ󣬴ӡ°¹ý³Ì¿ò¡±ÖÐÑ¡ÔñÒ»¸ö¹ý³Ì£¬¾Í¿ÉÔÚ¡°´úÂë±à¼­Æ÷¡±   ´°¿ÚÑ¡ÔñÒ»¸öÄ£°å¡£   
    
  ÔÚ¿ªÊ¼Îª¿Ø¼þ±àдʼþ¹ý³Ì֮ǰÏÈÉèÖÿؼþµÄ   Name   ÊôÐÔ£¬ÕⲻʧΪһ¸öºÃÖ÷Òâ¡£Èç¹û¶Ô¿Ø¼þ¸½¼ÓÒ»¸ö¹ý³ÌÖ®ºóÓÖ¸ü¸Ä¿Ø¼þµÄÃû×Ö£¬ÄÇôҲ±ØÐë¸ü¸Ä¹ý³ÌµÄÃû×Ö£¬ÒÔ·ûºÏ¿Ø¼þµÄÐÂÃû×Ö¡£·ñÔò£¬Visual   Basic   ÎÞ·¨Ê¹¿Ø¼þºÍ¹ý³ÌÏà·û¡£¹ý³ÌÃûÓë¿Ø¼þÃû²»·ûʱ£¬¹ý³Ì¾Í³ÉΪͨÓùý³Ì¡£   
    

****×î×î¸ù±¾µÄÇø±ð²»ÊÇsubûÓзµ»ØÖµ£¬¶øfunctionÓС£   
  ¶øÊÇ   
  subµ÷Óã¬Ã»ÓжÑÕ»µÄ¿ªÏú¡£¶øfunctionÈ´ÓÐ
subµ÷Ó㬵÷ÓÃǰ£¬²»ÓÃѹÈëÕ»£¬Í˳öºóÒ²²»Óõ¯³öÕ»   
    
  ¶øfunctionÔò²»È»

 

×÷Õߣºº¬Ð¦²»Óï
ר¼Ò·Ö£º50
¼¶±ð:1

·¢±íʱ¼ä£º2008-1-6 19:46:00    [»Ø¸´]  [ÒýÓÃ]
3 Â¥  



²¹³ä£ºÊ²Ã´ÊǶÑÕ»
ÔÚ¼ÆËã»úÁìÓò£¬¶ÑÕ»ÊÇÒ»¸ö²»ÈݺöÊӵĸÅÄµ«ÊǺܶàÈËÉõÖÁÊǼÆËã»úרҵµÄÈËҲûÓÐÃ÷È·¶ÑÕ»ÆäʵÊÇÁ½ÖÖÊý¾Ý½á¹¹¡£

Òªµã£º

¶Ñ£ºË³ÐòËæÒâ

Õ»£ºÏȽøºó³ö



¶ÑºÍÕ»µÄÇø±ð
Ò»¡¢Ô¤±¸ÖªÊ¶¡ª³ÌÐòµÄÄÚ´æ·ÖÅä 

Ò»¸öÓÉc/C++±àÒëµÄ³ÌÐòÕ¼ÓõÄÄÚ´æ·ÖΪÒÔϼ¸¸ö²¿·Ö 

1¡¢Õ»Çø£¨stack£©¡ª ÓɱàÒëÆ÷×Ô¶¯·ÖÅäÊÍ·Å £¬´æ·Åº¯ÊýµÄ²ÎÊýÖµ£¬¾Ö²¿±äÁ¿µÄÖµµÈ¡£Æä²Ù×÷·½Ê½ÀàËÆÓÚÊý¾Ý½á¹¹ÖеÄÕ»¡£ 

2¡¢¶ÑÇø£¨heap£© ¡ª Ò»°ãÓɳÌÐòÔ±·ÖÅäÊÍ·Å£¬ Èô³ÌÐòÔ±²»ÊÍ·Å£¬³ÌÐò½áÊøÊ±¿ÉÄÜÓÉOS»ØÊÕ ¡£×¢ÒâËüÓëÊý¾Ý½á¹¹ÖеĶÑÊÇÁ½»ØÊ£¬·ÖÅ䷽ʽµ¹ÊÇÀàËÆÓÚÁ´±í¡£ 

3¡¢È«¾ÖÇø£¨¾²Ì¬Çø£©£¨static£©¡ª£¬È«¾Ö±äÁ¿ºÍ¾²Ì¬±äÁ¿µÄ´æ´¢ÊÇ·ÅÔÚÒ»¿éµÄ£¬³õʼ»¯µÄÈ«¾Ö±äÁ¿ºÍ¾²Ì¬±äÁ¿ÔÚÒ»¿éÇøÓò£¬ Î´³õʼ»¯µÄÈ«¾Ö±äÁ¿ºÍδ³õʼ»¯µÄ¾²Ì¬±äÁ¿ÔÚÏàÁÚµÄÁíÒ»¿éÇøÓò¡£ - ³ÌÐò½áÊøºóÓÉϵͳÊÍ·Å¡£

4¡¢ÎÄ×Ö³£Á¿Çø ¡ª³£Á¿×Ö·û´®¾ÍÊÇ·ÅÔÚÕâÀïµÄ¡£ ³ÌÐò½áÊøºóÓÉϵͳÊÍ·Å ¡£

5¡¢³ÌÐò´úÂëÇø¡ª´æ·Åº¯ÊýÌåµÄ¶þ½øÖÆ´úÂë¡£ 

¶þ¡¢Àý×Ó³ÌÐò 

ÕâÊÇÒ»¸öǰ±²Ð´µÄ£¬·Ç³£Ïêϸ 

//main.cpp 

int a = 0; È«¾Ö³õʼ»¯Çø 

char *p1; È«¾Öδ³õʼ»¯Çø 

main() 



int b; Õ» 

char s[] = "abc"; Õ» 

char *p2; Õ» 

char *p3 = "123456"; 123456\0ÔÚ³£Á¿Çø£¬p3ÔÚÕ»ÉÏ¡£ 

static int c =0£» È«¾Ö£¨¾²Ì¬£©³õʼ»¯Çø 

p1 = (char *)malloc(10); 

p2 = (char *)malloc(20); 


·ÖÅäµÃÀ´µÃ10ºÍ20×Ö½ÚµÄÇøÓò¾ÍÔÚ¶ÑÇø¡£ 

strcpy(p1, "123456"); 123456\0·ÅÔÚ³£Á¿Çø£¬±àÒëÆ÷¿ÉÄܻὫËüÓëp3ËùÖ¸ÏòµÄ"123456"ÓÅ»¯³ÉÒ»¸öµØ·½¡£ 



¶ÑºÍÕ»µÄÀíÂÛ֪ʶ

1.ÉêÇ뷽ʽ 

stack: 

ÓÉϵͳ×Ô¶¯·ÖÅä¡£ ÀýÈ磬ÉùÃ÷ÔÚº¯ÊýÖÐÒ»¸ö¾Ö²¿±äÁ¿ int b; ÏµÍ³×Ô¶¯ÔÚÕ»ÖÐΪb¿ª±Ù¿Õ¼ä 

heap: 

ÐèÒª³ÌÐòÔ±×Ô¼ºÉêÇ룬²¢Ö¸Ã÷´óС£¬ÔÚcÖÐmallocº¯Êý 

Èçp1 = (char *)malloc(10); 

ÔÚC++ÖÐÓÃnewÔËËã·û 

Èçp2 = (char *)malloc(10); 

µ«ÊÇ×¢Òâp1¡¢p2±¾ÉíÊÇÔÚÕ»Öеġ£ 

2.ÉêÇëºóϵͳµÄÏìÓ¦ 

Õ»£ºÖ»ÒªÕ»µÄÊ£Óà¿Õ¼ä´óÓÚËùÉêÇë¿Õ¼ä£¬ÏµÍ³½«Îª³ÌÐòÌṩÄڴ棬·ñÔò½«±¨Òì³£ÌáʾջÒç³ö¡£ 

¶Ñ£ºÊ×ÏÈÓ¦¸ÃÖªµÀ²Ù×÷ϵͳÓÐÒ»¸ö¼Ç¼¿ÕÏÐÄÚ´æµØÖ·µÄÁ´±í£¬µ±ÏµÍ³ÊÕµ½³ÌÐòµÄÉêÇëʱ£¬»á±éÀú¸ÃÁ´±í£¬Ñ°ÕÒµÚÒ»¸ö¿Õ¼ä´óÓÚËùÉêÇë¿Õ¼äµÄ¶Ñ½áµã£¬È»ºó½«¸Ã½áµã´Ó¿ÕÏнáµãÁ´±íÖÐɾ³ý£¬²¢½«¸Ã½áµãµÄ¿Õ¼ä·ÖÅ䏸³ÌÐò£¬ÁíÍ⣬¶ÔÓÚ´ó¶àÊýϵͳ£¬»áÔÚÕâ¿éÄÚ´æ¿Õ¼äÖеÄÊ×µØÖ·´¦¼Ç¼±¾´Î·ÖÅäµÄ´óС£¬ÕâÑù£¬´úÂëÖеÄdeleteÓï¾ä²ÅÄÜÕýÈ·µÄÊͷű¾ÄÚ´æ¿Õ¼ä¡£ÁíÍ⣬ÓÉÓÚÕÒµ½µÄ¶Ñ½áµãµÄ´óС²»Ò»¶¨ÕýºÃµÈÓÚÉêÇëµÄ´óС£¬ÏµÍ³»á×Ô¶¯µÄ½«¶àÓàµÄÄDz¿·ÖÖØÐ·ÅÈë¿ÕÏÐÁ´±íÖС£ 

3.ÉêÇë´óСµÄÏÞÖÆ 

Õ»£ºÔÚWindowsÏÂ,Õ»ÊÇÏòµÍµØÖ·À©Õ¹µÄÊý¾Ý½á¹¹£¬ÊÇÒ»¿éÁ¬ÐøµÄÄÚ´æµÄÇøÓò¡£Õâ¾ä»°µÄÒâ˼ÊÇÕ»¶¥µÄµØÖ·ºÍÕ»µÄ×î´óÈÝÁ¿ÊÇϵͳԤÏȹ涨ºÃµÄ£¬ÔÚ WINDOWSÏ£¬Õ»µÄ´óСÊÇ2M£¨Ò²ÓеÄ˵ÊÇ1M£¬×ÜÖ®ÊÇÒ»¸ö±àÒëʱ¾ÍÈ·¶¨µÄ³£Êý£©£¬Èç¹ûÉêÇëµÄ¿Õ¼ä³¬¹ýÕ»µÄÊ£Óà¿Õ¼äʱ£¬½«Ìáʾoverflow¡£Òò´Ë£¬ÄÜ´ÓÕ»»ñµÃµÄ¿Õ¼ä½ÏС¡£ 

¶Ñ£º¶ÑÊÇÏò¸ßµØÖ·À©Õ¹µÄÊý¾Ý½á¹¹£¬ÊDz»Á¬ÐøµÄÄÚ´æÇøÓò¡£ÕâÊÇÓÉÓÚϵͳÊÇÓÃÁ´±íÀ´´æ´¢µÄ¿ÕÏÐÄÚ´æµØÖ·µÄ£¬×ÔÈ»ÊDz»Á¬ÐøµÄ£¬¶øÁ´±íµÄ±éÀú·½ÏòÊÇÓɵ͵ØÖ·Ïò¸ßµØÖ·¡£¶ÑµÄ´óСÊÜÏÞÓÚ¼ÆËã»úϵͳÖÐÓÐЧµÄÐéÄâÄÚ´æ¡£Óɴ˿ɼû£¬¶Ñ»ñµÃµÄ¿Õ¼ä±È½ÏÁé»î£¬Ò²±È½Ï´ó¡£ 

4.ÉêÇëЧÂʵıȽÏ

Õ»ÓÉϵͳ×Ô¶¯·ÖÅ䣬ËٶȽϿ졣µ«³ÌÐòÔ±ÊÇÎÞ·¨¿ØÖƵġ£ 

¶ÑÊÇÓÉnew·ÖÅäµÄÄڴ棬һ°ãËٶȱȽÏÂý£¬¶øÇÒÈÝÒײúÉúÄÚ´æË鯬,²»¹ýÓÃÆðÀ´×î·½±ã. 

ÁíÍ⣬ÔÚWINDOWSÏ£¬×îºÃµÄ·½Ê½ÊÇÓÃVirtualAlloc·ÖÅäÄڴ棬Ëû²»ÊÇÔÚ¶Ñ£¬Ò²²»ÊÇÔÚÕ»,¶øÊÇÖ±½ÓÔÚ½ø³ÌµÄµØÖ·¿Õ¼äÖб£ÁôÒ»¿ìÄڴ棬ËäÈ»ÓÃÆðÀ´×î²»·½±ã¡£µ«ÊÇËٶȿ죬Ҳ×îÁé»î 

5.¶ÑºÍÕ»ÖеĴ洢ÄÚÈÝ 

Õ»£º ÔÚº¯Êýµ÷ÓÃʱ£¬µÚÒ»¸ö½øÕ»µÄÊÇÖ÷º¯ÊýÖк¯Êýµ÷ÓúóµÄÏÂÒ»ÌõÖ¸Áº¯Êýµ÷ÓÃÓï¾äµÄÏÂÒ»Ìõ¿ÉÖ´ÐÐÓï¾ä£©µÄµØÖ·£¬È»ºóÊǺ¯ÊýµÄ¸÷¸ö²ÎÊý£¬ÔÚ´ó¶àÊýµÄC±àÒëÆ÷ÖУ¬²ÎÊýÊÇÓÉÓÒÍù×óÈëÕ»µÄ£¬È»ºóÊǺ¯ÊýÖеľֲ¿±äÁ¿¡£×¢Ò⾲̬±äÁ¿ÊDz»ÈëÕ»µÄ¡£ 

µ±±¾´Îº¯Êýµ÷ÓýáÊøºó£¬¾Ö²¿±äÁ¿ÏȳöÕ»£¬È»ºóÊDzÎÊý£¬×îºóÕ»¶¥Ö¸ÕëÖ¸Ïò×ʼ´æµÄµØÖ·£¬Ò²¾ÍÊÇÖ÷º¯ÊýÖеÄÏÂÒ»ÌõÖ¸Á³ÌÐòÓɸõã¼ÌÐøÔËÐС£ 

¶Ñ£ºÒ»°ãÊÇÔڶѵÄÍ·²¿ÓÃÒ»¸ö×Ö½Ú´æ·Å¶ÑµÄ´óС¡£¶ÑÖеľßÌåÄÚÈÝÓгÌÐòÔ±°²ÅÅ¡£ 

6.´æÈ¡Ð§ÂʵıȽϠ

char s1[] = "aaaaaaaaaaaaaaa"; 

char *s2 = "bbbbbbbbbbbbbbbbb"; 

aaaaaaaaaaaÊÇÔÚÔËÐÐʱ¿Ì¸³ÖµµÄ£» 

¶øbbbbbbbbbbbÊÇÔÚ±àÒëʱ¾ÍÈ·¶¨µÄ£» 

µ«ÊÇ£¬ÔÚÒÔºóµÄ´æÈ¡ÖУ¬ÔÚÕ»ÉϵÄÊý×é±ÈÖ¸ÕëËùÖ¸ÏòµÄ×Ö·û´®(ÀýÈç¶Ñ)¿ì¡£ 

±ÈÈ磺 

#include 

void main() 



char a = 1; 

char c[] = "1234567890"; 

char *p ="1234567890"; 

a = c[1]; 

a = p[1]; 

return; 



¶ÔÓ¦µÄ»ã±à´úÂë 

10: a = c[1]; 

00401067 8A 4D F1 mov cl,byte ptr [ebp-0Fh] 

0040106A 88 4D FC mov byte ptr [ebp-4],cl 

11: a = p[1]; 

0040106D 8B 55 EC mov edx,dword ptr [ebp-14h] 

00401070 8A 42 01 mov al,byte ptr [edx+1] 

00401073 88 45 FC mov byte ptr [ebp-4],al 

µÚÒ»ÖÖÔÚ¶Áȡʱֱ½Ó¾Í°Ñ×Ö·û´®ÖеÄÔªËØ¶Áµ½¼Ä´æÆ÷clÖУ¬¶øµÚ¶þÖÖÔòÒªÏȰÑÖ¸ÕëÖµ¶Áµ½edxÖУ¬ÔÚ¸ù¾Ýedx¶ÁÈ¡×Ö·û£¬ÏÔÈ»ÂýÁË¡£ 


7.С½á£º 

¶ÑºÍÕ»µÄÇø±ð¿ÉÒÔÓÃÈçϵıÈÓ÷À´¿´³ö£º 

ʹÓÃÕ»¾ÍÏóÎÒÃÇÈ¥·¹¹ÝÀï³Ô·¹£¬Ö»¹Üµã²Ë£¨·¢³öÉêÇ룩¡¢¸¶Ç®¡¢ºÍ³Ô£¨Ê¹Óã©£¬³Ô±¥Á˾Í×ߣ¬²»±ØÀí»áÇвˡ¢Ï´²ËµÈ×¼±¸¹¤×÷ºÍÏ´Í롢ˢ¹øµÈɨβ¹¤×÷£¬ËûµÄºÃ´¦ÊÇ¿ì½Ý£¬µ«ÊÇ×ÔÓɶÈС¡£ 

ʹÓöѾÍÏóÊÇ×Ô¼º¶¯ÊÖ×öϲ»¶³ÔµÄ²ËëÈ£¬±È½ÏÂé·³£¬µ«ÊDZȽϷûºÏ×Ô¼ºµÄ¿Ú棬¶øÇÒ×ÔÓɶȴ󡣠



¶ÑºÍÕ»µÄÇø±ðÖ÷Òª·Ö£º

²Ù×÷ϵͳ·½ÃæµÄ¶ÑºÍÕ»£¬ÈçÉÏÃæËµµÄÄÇЩ£¬²»¶à˵ÁË¡£ 

»¹ÓоÍÊÇÊý¾Ý½á¹¹·½ÃæµÄ¶ÑºÍÕ»£¬ÕâЩ¶¼ÊDz»Í¬µÄ¸ÅÄî¡£ÕâÀïµÄ¶Ñʵ¼ÊÉÏÖ¸µÄ¾ÍÊÇ£¨Âú×ã¶ÑÐÔÖʵģ©ÓÅÏȶÓÁеÄÒ»ÖÖÊý¾Ý½á¹¹£¬µÚ1¸öÔªËØÓÐ×î¸ßµÄÓÅÏÈȨ£»Õ»Êµ¼ÊÉϾÍÊÇÂú×ãÏȽøºó³öµÄÐÔÖʵÄÊýѧ»òÊý¾Ý½á¹¹¡£ 

ËäÈ»¶ÑÕ»£¬¶ÑÕ»µÄ˵·¨ÊÇÁ¬ÆðÀ´½Ð£¬µ«ÊÇËûÃÇ»¹ÊÇÓкܴóÇø±ðµÄ£¬Á¬×ŽÐÖ»ÊÇÓÉÓÚÀúÊ·µÄÔ­Òò¡£

 

×÷Õߣºº¬Ð¦²»Óï
ר¼Ò·Ö£º50
¼¶±ð:1

·¢±íʱ¼ä£º2008-1-6 19:49:00    [»Ø¸´]  [ÒýÓÃ]
4 Â¥  
3).CreateRectRgn VBÉùÃ÷ 

'´´½¨Ò»¸ö¾ØÐÎÇøÓò

Declare Function CreateRectRgn Lib "gdi32" Alias "CreateRectRgn" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long 
˵Ã÷ 
´´½¨Ò»¸öÓɵãX1£¬Y1ºÍX2£¬Y2ÃèÊöµÄ¾ØÐÎÇøÓò 
·µ»ØÖµ 
Long£¬Ö´Ðгɹ¦ÎªÇøÓò¾ä±ú£¬Ê§°ÜÔòΪÁã 
²ÎÊý±í 
²ÎÊý     ÀàÐÍ    ËµÃ÷ 
X1,Y1    Long£¬  ¾ØÐÎ×óÉϽÇX£¬Y×ø±ê 
X2,Y2    Long£¬  ¾ØÐÎÓÒϽÇX£¬Y×ø±ê 
×¢½â 
²»ÓÃʱһ¶¨ÒªÓÃDeleteObjectº¯Êýɾ³ý¸ÃÇøÓò
Õâ¸ö¾ØÐεÄϱߺÍÓұ߲»°üº¬ÔÚÇøÓòÖ®ÄÚ



CreateRectRgn()µÄ×÷ÓÃÊÇ´´½¨Ò»¸ö¾ØÐÎÇøÓò,ÒÔÄã´«Èë²ÎÊýµÄ¾ØÐÎλÖô´½¨Ò»¸öÇøÓò¶ÔÏó
 
CreateRectRgn()ÓÃÀ´´´½¨Ò»¸ö¡°¼ô²ÃÇøÓò¡±£»ÖÁÓÚ¼ô²ÃÇøÓò£¬ËüÊǶÔÏÔʾÆ÷ÉÏÒ»¸ö·¶Î§µÄÃèÊö£¬Õâ¸ö·¶Î§ÊǾØÐΡ¢¶à±ßÐκÍÍÖÔ²µÄ×éºÏ¡£¼ô²ÃÇøÓòÒ»°ãÓÃÀ´»æÖƺͼô²Ã£¬Í¨¹ý½«¼ô²ÃÇøÓòÑ¡½øÉ豸ÉÏÏÂÎÄ£¬¾Í¿ÉÒÔÓüô²ÃÇøÓòÀ´½øÐмô²Ã£¨¾ÍÊÇ˵£¬½«¿ÉÒÔ»æÍ¼µÄ·¶Î§ÏÞÖÆÎªÏÔÊ¾ÇøÓòµÄÒ»²¿·Ö£©¡£ËüÊÇGDI¶ÔÏó¡£ÔÚGDIÖе±º¯ÊýÃû³ÆÖаüº¬Rgn×Ö·ûʱ£¬Ò»°ã±íʾ´Ëº¯ÊýÓë¼ô²ÃÇøÓòÓйء£

 

×÷Õߣºº¬Ð¦²»Óï
ר¼Ò·Ö£º50
¼¶±ð:1

·¢±íʱ¼ä£º2008-1-6 19:51:00    [»Ø¸´]  [ÒýÓÃ]
5 Â¥  
4).¹ØÓÚLIBºÍDLL


dll  ÊÇ ±àÒëºó  Éú³ÉµÄ  ¶¯Ì¬Á¬½Ó¿â,  ¶ø  lib  ÊÇÔÚ  ³ÌÐò±àÒëʱ  »áÓõ½µÄ  Àà¿âÎļþ

1.ʲôÊǶ¯Ì¬Á´½Ó¿â£¿

  DLLÊÇDynamic Link Library µÄËõдÐÎʽ£¬¶¯Ì¬Á´½Ó¿â (DLL) ÊÇ×÷Ϊ¹²Ïíº¯Êý¿âµÄ¿ÉÖ´ÐÐÎļþ¡£¶¯Ì¬Á´½ÓÌṩÁËÒ»ÖÖ·½·¨£¬Ê¹½ø³Ì¿ÉÒÔµ÷Óò»ÊôÓÚÆä¿ÉÖ´ÐдúÂëµÄº¯Êý¡£º¯ÊýµÄ¿ÉÖ´ÐдúÂëλÓÚÒ»¸ö DLL ÖУ¬¸Ã DLL °üº¬Ò»¸ö»ò¶à¸öÒѱ»±àÒë¡¢Á´½Ó²¢ÓëʹÓÃËüÃǵĽø³Ì·Ö¿ª´æ´¢µÄº¯Êý¡£DLL »¹ÓÐÖúÓÚ¹²ÏíÊý¾ÝºÍ×ÊÔ´¡£¶à¸öÓ¦ÓóÌÐò¿Éͬʱ·ÃÎÊÄÚ´æÖе¥¸ö DLL ¸±±¾µÄÄÚÈÝ¡£ 


¶¯Ì¬Á´½Ó¿âÊÇÒ»¸öÄܹ»±»Ó¦ÓóÌÐòºÍÆäËüµÄDLLµ÷ÓõĹý³ÌºÍº¯ÊýµÄ¼¯ºÏÌå,ËüÀïÃæ°üº¬µÄÊǹ«¹²´úÂë»ò×ÊÔ´¡£ÓÉÓÚDLL´úÂëʹÓÃÁËÄÚ´æ¹²Ïí¼¼Êõ,ÔÚijЩµØ·½windowsÒ²¸øÁËDLLһЩ¸ü¸ßµÄȨÏÞ,Òò¶øDLLÖпÉÒÔʵÏÖһЩһ°ã³ÌÐòËù²»ÄÜʵÏֵŦÄÜ,ÈçʵÏÖwindowsµÄHOOK¡¢ISAPIµÈ¡£ 

ͬʱ,DLL»¹Îª²»Í¬ÓïÑÔ¼ä´úÂë¹²ÏíÌṩÁËÒ»Ìõ·½±ãµÄ;¾¶¡£Òò¶øDLLÔÚ±à³ÌʱӦÓýÏΪ¹ã·º,±¾ÎĽ«½éÉÜÈçºÎÔÚ Delphi Öн¨Á¢ºÍʹÓÃDLL¡£ 

Ò»£®DLL ¿âÄÚ´æ¹²Ïí»úÖÆ 

´ÓʹÓÃЧ¹û¿´,DLLºÍunit ºÜÏñ,ËüÃǶ¼¿ÉÒÔ±»±ðµÄ¹¤³ÌÄ£¿éËùµ÷ÓÃ,µ«¶þÕßÔÚÄÚ²¿µÄʵÏÖ»úÖÆÉÏÈ·´æÔÚ×Ųî±ð¡£Èç¹ûÒ»¸ö³ÌÐòÄ£¿éÖÐÓÃusesÓï¾äÒýÓÃÁËij¸öunit,±àÒë³ÌÐòÔÚ±àÒë¸ÃÄ£¿éʱ,±ã»áÁ¬Í¬unitÒ»Æð±àÒë,²¢°Ñ±àÒëºóµÄ¿ÉÖ´ÐдúÂëÁ´½Óµ½±¾³ÌÐòÄ£¿éÖÐ,Õâ¾ÍÊÇÒ»¸ö³ÌÐòÄ£¿éÄܹ»µ÷ÓÃËùÒýÓÃunitÖйý³ÌºÍº¯ÊýµÄÔ­Òò¡£ 

µ±Í¬Ò»¸öunit±»¶à¸ö¹¤³ÌËùÒýÓÃʱ,Ôòÿ¸ö¹¤³ÌÖж¼º¬ÓиÃunitµÄ¿ÉÖ´ÐдúÂë,µ±º¬ÓиÃunitµÄ¶à¸ö¹¤³ÌͬʱִÐÐʱ,unitµÄ¿ÉÖ´ÐдúÂë»áËæ²»Í¬¹¤³Ì¶ø¶à´Î±»µ÷ÈëÄÚ´æ,Ôì³ÉÄÚ´æ×ÊÔ´µÄÀË·Ñ¡£DLLÔò²»Í¬,Ëü¼´Ê¹±»Ä³¸ö¹¤³Ìµ÷ÓÃ,±àÒëºóÈÔÊǶÀÁ¢µÄ¡£ 

Ò²¾ÍÊÇ˵±àÒëºó,Ò»¸öDLL¿âÐγÉÒ»¸öµ¥¶ÀµÄ¿ÉÖ´ÐÐÎļþ,¶ø²»ÓëÈÎºÎÆäËüµÄ¿ÉÖ´ÐÐÎļþÁ¬½ÓÔÚÒ»Æð,Òò¶øDLL¿â²¢²»´ÓÊôÓÚij¸öÌØ¶¨µÄ¹¤³Ì,µ±¶à¸ö¹¤³Ìµ÷ÓÃͬһ¸öDLL¿âʱֻÓеÚÒ»¸ö¹¤³Ì°ÑDLL¿âµ÷ÈëÄÚ´æ,ÆäÓ๤³Ì²¢²»Öظ´µ÷Èëͬһ¸öDLL¿âµ½ÄÚ´æ,¶øÊǵ½Í¬Ò»¸ö¹²ÏíÄÚ´æÇø¶ÁÈ¡¡£²¢ÇÒ,DLLµÄÖ´ÐдúÂëÊÇÔÚ³ÌÐòÔËÐÐÆÚ¼ä¶¯Ì¬µ÷ÈëµÄ,¶ø²»ÊÇÈçunitÔÚ³ÌÐòÔËÐÐʱ¾ÍÓëÕû¸ö¹¤³ÌÒ»Æðµ÷ÈëÄÚ´æ¡£ÕâÑù±ã¿ÉÏû³ýunit´øÀ´µÄÏàͬ´úÂë¶à´¦Õ¼ÓÃÄÚ´æµÄ±×²¡¡£ 

¶þ DelphiÖÐDLL¿âµÄ½¨Á¢ 

ÔÚDelphi»·¾³ÖÐ,±àдһ¸öDLLͬ±àдһ¸öÒ»°ãµÄÓ¦ÓóÌÐò²¢Ã»ÓÐÌ«´óµÄÇø±ð¡£ÊÂʵÉÏ×÷ΪDLLÖ÷ÌåµÄDLLº¯ÊýµÄ±àд,³ýÁËÔÚÄÚ´æ¡¢×ÊÔ´µÄ¹ÜÀíÉÏÓÐËù²»Í¬Íâ,²¢²»ÐèÒªÆäËüÌØ±ðµÄÊֶΡ£ 

Ò»°ã¹¤³ÌÎļþµÄ¸ñʽΪ: 
program ¹¤³Ì±êÌâ; 
uses ×Ó¾ä; 
³ÌÐòÌå 
¶øDLLs¹¤³ÌÎļþµÄ¸ñʽΪ: 
library ¹¤³Ì±êÌâ; 
uses ×Ó¾ä; 
exprots ×Ó¾ä; 
ÌÐòÌ? 
ËüÃÇÖ÷ÒªµÄÇø±ðÓÐÁ½µã: 

1.Ò»°ã¹¤³ÌÎļþµÄÍ·±êÓÃprogram¹Ø¼ü×Ö,¶øDLL¹¤³ÌÎļþÍ·±êÓÃlibrary ¹Ø¼ü×Ö¡£²»Í¬µÄ¹Ø¼ü×Ö֪ͨ±àÒëÆ÷Éú³É²»Í¬µÄ¿ÉÖ´ÐÐÎļþ¡£ÓÃprogram¹Ø¼ü×ÖÉú³ÉµÄÊÇ.exeÎļþ,¶øÓÃlibrary¹Ø¼ü×ÖÉú³ÉµÄÊÇ.dllÎļþ; 

2.¼ÙÈçDLLÒªÊä³ö¹©ÆäËüÓ¦ÓóÌÐòʹÓõĺ¯Êý»ò¹ý³Ì,Ôò±ØÐ뽫ÕâЩº¯Êý»ò¹ý³ÌÁÐÔÚexports×Ó¾äÖС£¶øÕâЩº¯Êý»ò¹ý³Ì±¾Éí±ØÐëÓÃexport±àÒëÖ¸Áî½øÐбàÒë¡£ ÔÚDelphiÖ÷²Ëµ¥file ÖÐÑ¡new...Ïî,ÔÚµ¯³öµÄ´°¿ÚÖÐË«»÷DLLͼ±ê,±ã»á×Ô¶¯¸ø³öDLLÔ´Ä£¿é¿ò¼Ü,ÈçÏÂ: 

Library project1; 
{...×¢ÊÍ...} 
uses 
SysUtils, Classes; 
begin 
end. 

½ÓÏÂÀ´±ã¿ÉÔÚUSESºÍbeginÖ®¼ä¼ÓÈëÏëÔÚ¸ÃDLLÖÐʵÏֵĹý³ÌºÍº¯ÊýµÄ¶¨Òå,²¢ÓÃexportºÍexprots±£×Ö°ÑËüÃÇÒý³ö,ÒÔ±ã±ðµÄÄ£¿éÒýÓÃ,ÔÚbeginºÍendÖ®¼ä¼ÓÈë³õʼ»¯´úÂë,³õʼ»¯´úÂëÊÇÓÃÀ´¶ÔDLL±äÁ¿³õʼ»¯µÄ¡£Ó¦×¢Òâ,¼´±ãÎÞ³õʼ»¯´úÂëbeginÓëendÒ²²»¿ÉÊ¡ÂÔ,ÈçÏÂÀý: 

library minmax; 
function Min(X, Y: Integer): Integer; export; 
begin 
if X < Y then Min := X else Min := Y; 
end; 
function Max(X, Y: Integer): Integer; export; 
begin 
if X > Y then Max := X else Max := Y; 
end; 
exports 
Min index 1, 
Max index 2; 
begin 
end. 

¾­±àÒëºó,²¢ÒÔminmax.DLL´æÅ̺ó,Ò»¸öDLL¿âÎļþ±ãÐγÉÁË¡£ 
Èý DLL¿âµÄ·ÃÎÊ 

·ÃÎÊDLL¿âÓÐÁ½ÖÖ·½Ê½,Ò»ÖÖÊǾ²Ì¬ÒýÓÃ,ÁíÒ»ÖÖÊǶ¯Ì¬ÒýÓᣠ

Óþ²Ì¬ÒýÓÃÕâÖÖ·½·¨×°ÈëDLLÒª×öÁ½¼þÊÂÇé:ΪDLL ¿â´´½¨Ò»¸öÊäÈëµ¥Ôª,ÒÔ¼°ÓÃUSES°ÑÊäÈëµ¥ÔªÁ¬½Óµ½ÒªÊ¹ÓÃDLL º¯ÊýµÄ³ÌÐòÄ£¿éÖС£ÎªDLL¿â´´½¨µÄÊäÈëµ¥ÔªÓëÆÕͨµÄµ¥ÔªµÄÇø±ð½öÔÚÓÚ:ÔÚËüµÄ½Ó¿Ú´¦ÉùÃ÷µÄ¹ý³Ì¡¢º¯Êý,²¢²»ÔÚËüµÄʵÏÖ²¿·Ö¸ø³öÕæÕýµÄʵÏÖ´úÂë,¶øÊÇÓÃexternal¹Ø¼ü×ְѹý³Ì¡¢º¯ÊýµÄʵÏÖϸ½ÚίÍиøÍⲿDLLÄ£¿é¡£ 

externalÃüÁîµÄʹÓÃÓï·¨ÈçÏÂ: 

procedure /function ¹ý³Ì/º¯ÊýÃû;external DLLÄ£¿éÃû; 

ÏÂÃæ¸ø³öΪÉÏÃæ´´½¨µÄminmax.DLL¿âдµÄÊäÈëµ¥ÔªÔ´Îļþtestdll .pas,´ÓÖпɿ´³öÊäÈëµ¥ÔªÓëÒ»°ãµ¥ÔªµÄһЩ²î±ð,´úÂëÈçÏÂËùʾ: 
unit testdll; 
interface 
uses 
function Min (X, Y: Integer): Integer; 
function Max (X, Y: Integer): Integer; 
implementation 
function Min; external ¡®minmax.DLL¡¯; 
function Max; external ¡®minmax.DLL¡¯; 
end. 

Ò»¸öÓ¦ÓóÌÐòÈôÏëµ÷ÓÃminmax.DLLÖеĺ¯Êý,Ö»ÐëÔÚÆäusesÓï¾äÖмÓÈëtestdll µ¥Ôª¼´¿É¡£ 

¶¯Ì¬×°ÈëDLL,ÒªÓõ½WindowsµÄÈý¸öAPIº¯Êý¡£Loadlibrary¡¢FreelibraryºÍGetprocAddress ¡£ loadlibraryº¯ÊýÓÃÀ´×°ÈëDLL¿â,Æäµ÷ÓøñʽÈçÏÂ: 

function loadlobrary (DLLfileName:Pchar): THandle: 

µ±²»ÔÙÐèÒªÒ»¸öDLL¿âʱ,Ó¦µ÷ÓÃFreeLibraryº¯Êý½«ÆäÊÍ·Å,ÒÔ¿Õ³ö±¦¹óµÄÄÚ´æ×ÊÔ´,Æäµ÷ÓøñʽÈçÏÂ: 

procedure FreeLibrary (Libmodule:THandle) 

Libmodule ÎªÓÉLoadLibraryµ÷Óõõ½µÄDLL¿â¾ä±ú¡£ÔÚÓÃloadlobrary º¯Êý×°Èëij¸öDLL¿âºÍµ÷ÓÃFreeLibraryÊͷŸÃDLL¿âÖ®¼äµÄ³ÌÐò¶ÎÖÐ, ¿ÉÒÔʹÓøÃDLL¿âÖеĹý³ÌºÍº¯Êý,¾ßÌåʹÓ÷½·¨ÊÇ:ÓÃGetprocAddressº¯Êý°ÑDLL¿âÖк¯ÊýµÄµØÖ·´«µÝ¸ø³ÌÐòÖÐij¸öº¯Êý±äÁ¿,ÔÙÓøñäÁ¿ÊµÏÖDLLº¯ÊýµÄµ÷Óá£GetprocAddressº¯ÊýÉùÃûÈçÏ 
function GetprocAddress (Libmodule:THandle:procname:pchar):TFarProc: 
ÈçÏÂÀýËùʾ: 
type 
TTimeRec = record 
Second: Integer; 
Minute: Integer; 
Hour: Integer; 
end; 
TGetTime = procedure(var Time: TTimeRec); 
THandle = Integer; 
var 
Time: TTimeRec; 
Handle: THandle; 
GetTime: TGetTime; 
... 
begin 
Handle := LoadLibrary('DATETIME.DLL'); 
if Handle <> 0 then 
begin 
@GetTime := GetProcAddress(Handle, 'GetTime'); 
if @GetTime <> nil then 
begin 
GetTime(Time); 
with Time do 
WriteLn('The time is ', Hour, ':', Minute, ':', Second); 
end; 
FreeLibrary(Handle); 
end; 
end; 

ÔÚµ÷Óö¯Ì¬Á´½Ó¿âʱӦעÒâ, ËùÐ趯̬Á´½Ó¿âÐëÓëÓ¦ÓóÌÐòÔÚͬһĿ¼»òWindows System Ä¿Â¼Ï¡£ 

¶¯Ì¬Á´½Ó¿âÊÇ WindowsϳÌÐò×éÖ¯µÄÒ»ÖÖÖØÒª·½Ê½,ʹÓö¯Ì¬Á´½Ó¿â¿ÉÒÔ¼«´óµØ±£»¤Óû§ÔÚ²»Í¬¿ª·¢¹¤¾ß¡¢²»Í¬Ê±ÆÚËù×öµÄ¹¤×÷,Ìá¸ß±à³ÌЧÂÊ¡£

 

×÷Õߣºº¬Ð¦²»Óï
ר¼Ò·Ö£º50
¼¶±ð:1

·¢±íʱ¼ä£º2008-1-6 19:52:00    [»Ø¸´]  [ÒýÓÃ]
6 Â¥  
2.ʲôÊǶ¯Ì¬Á¬½Ó¿âÎļþ£¿ÓÐʲôÓã¿

¡¡¡¡¼ÆËã»úÓïÑÔ ¾ÍÊÇд³ÌÐòÓïÑÔ
¡¡¡¡¸úÎÒÃÇ˵»°Ò»Ñù ÓÉÒ»¾äÒ»¾äÍêÕûµÄÒâ˼À´¹¹³É
¡¡¡¡ÄÃCÀ´Ëµ Ã¿Ò»¶ÎÄܹ»¶ÀÁ¢Ö´ÐеÄÓï¾ä ½Ð×öº¯Êý
¡¡¡¡¶¯Ì¬Á´½Ó¿â ¾Í°üº¬Á˺ܶຯÊý
¡¡¡¡µ«ÊÇÕâЩº¯Êý ²»Äܹ»¶ÀÁ¢ÔËÐÐ
¡¡¡¡ÐèÒªexeÎļþÖеĺ¯Êý À´µ÷ÓÃËü
¡¡¡¡dllÎļþÕûºÏÁË Ò»¸öº¯Êý¼¯ Õâ¸öº¯Êý¼¯ ¸³¸øËüÒ»¶¨µÄ²ÎÊý ¾ÍÄܶÀÁ¢µÄÍê³ÉÒ»ÏîÈÎÎñ
¡¡¡¡ÔÚ±à³ÌÖРÕâÑùµÄ¶«Î÷ ½ÐÄ£¿é
¡¡¡¡¸ù¾ÝdllµÄÌØÐÔ
¡¡¡¡Ëü°üº¬ÁË Ò»¶¨µÄ×Ô¼ºµÄÊôÐÔºÍʼþ¶¯×÷
¡¡¡¡ËùÒÔ ÓÖÊôÓÚÀàÄ£¿é
¡¡¡¡Ö´ÐÐЧÂʱȽϸß
¡¡¡¡ÎªÊ²Ã´Òª×ö³ÉdllÎļþÄØ?
¡¡¡¡ÒòΪÕâÑù±ãÓÚ À©Õ¹ºÍÒÆÖ²
¡¡¡¡´ò¸ö±È·½ Ò»¸öÀà(.dll)ËüµÄ×÷ÓÃÊDzéѯʱ¼ä
¡¡¡¡ËùÒÔ²»¹Üʲô³ÌÐò Ö»ÒªÓõ½²éѯʱ¼äÕâ¸ö¹¦ÄÜÁË
¡¡¡¡¶¼¿ÉÒÔµ÷ÓÃÕâ¸ö²éѯʱ¼ä¹¦ÄܵÄÀà
¡¡¡¡Ö»Òª½Ó¿Ú ºÍµ÷Óõĺ¯ÊýÃû,²ÎÊýÕýÈ·¾Í¿ÉÒÔ¹Ò½Ó
¡¡¡¡Òò´Ë²»±ØÔÚÿ¸ö³ÌÐòÀﶼдÉϲéѯʱ¼äµÄ´úÂëÔö¼Ó³ÌÐò±¾ÉíµÄ³¤¶È



3.ʲôÊǾ²Ì¬Á´½Ó¿â£¿

   ¾²Ì¬Á´½Ó¿â¾ÍÊÇ.libÎļþ£¬¿âÖеôúÂë×îºóÐèÒªÁ¬½Óµ½ÄãµÄ¿ÉÖ´ÐÐÎļþÖÐÈ¥£¬ËùÒÔ¾²Ì¬Á¬½ÓµÄ¿ÉÖ´ÐÐÎļþÒ»°ã±È½Ï´óһЩ¡£ Èç¹ûÄãʹÓÃVC£¬¿ÉÒÔÔÚProject   Setting--&gt;LinkÖмÓÈëÄãµÄ¾²Ì¬¿â£¬Ò²¿ÉÒÔÖ±½Ó°Ñ¸Ã.libÎļþ¼ÓÈëµ½ÄãµÄ¹¤³ÌÖС£
   ÔÚ¾²Ì¬¿âÇé¿öÏ£¬º¯ÊýºÍÊý¾Ý±»±àÒë½øÒ»¸ö¶þ½øÖÆÎļþ£¨Í¨³£À©Õ¹ÃûΪ*.LIB£©£¬Visual   C++µÄ±àÒëÆ÷ÔÚ´¦Àí³ÌÐò´úÂëʱ½«´Ó¾²Ì¬¿âÖлָ´ÕâЩº¯ÊýºÍÊý¾Ý²¢°ÑËûÃǺÍÓ¦ÓóÌÐòÖÐµÄÆäËûÄ£¿é×éºÏÔÚÒ»ÆðÉú³É¿ÉÖ´ÐÐÎļþ¡£Õâ¸ö¹ý³Ì³ÆÎª"¾²Ì¬Á´½Ó"£¬´ËʱÒòΪӦÓóÌÐòËùÐèµÄÈ«²¿ÄÚÈݶ¼ÊÇ´Ó¿âÖи´ÖÆÁ˳öÀ´£¬ËùÒÔ¾²Ì¬¿â±¾Éí²¢²»ÐèÒªÓë¿ÉÖ´ÐÐÎļþÒ»Æð·¢ÐС£


4.¾²Ì¬¿âºÍ¶¯Ì¬¿âµÄÇø±ð£¿
     ¾²Ì¬Á¬½Ó¿â,ÔÚ±àÒëÒÔºó°üº¬ÔÚ¿ÉÖ´ÐÐÎļþÖÐ,²»»áÒÔµ¥¶ÀÎļþµÄÐÎʽ´æÔÚ.¶¯Ì¬Á¬½Ó¿âÊÇÒÔµ¥¶ÀÎļþµÄÐÎʽ´æÔÚ,±»³ÌÐòÍⲿµ÷ÓÃ,¶¯Ì¬Á¬½Ó¿âµÄºÃ´¦¾ÍÊÇ¿ÉÒÔ¶à¸ö½ø³Ì·ÃÎÊÒ»¸ö¶¯Ì¬Á¬½Ó¿â,²¢ÇÒ¹²ÏíÒ»¿éÄÚ´æ.¾²Ì¬Ôò°üº¬ÔÚ³ÌÐòÖÐ,²»Äܱ»Íⲿµ÷ÓÃ!

   ¼òµ¥µØ½²£¬¾²Ì¬¿â³ÌÐòºÜ³¤£¬µ«¿ÉÒÔ¶ÀÁ¢ÔËÐУ¬¶¯Ì¬¿â³ÌÐòºÜ¶Ì£¬µ«ÐèÒªÆäËüһЩ¶¯Ì¬¿â´æÔÚ²ÅÄܽøÐй¤×÷¡£  ÐèҪעÒâµÄÊÇ£¬¾Íij¸ö¶¯Ì¬¿âÀ´Ëµ£¬ËüÒ²Óо²Ì¬¿â°æ±¾ºÍ¶¯Ì¬¿â°æ±¾£¬Æä¾²Ì¬¿â°æ±¾¿ÉÒÔ¶ÀÁ¢¹¤×÷£¬µ«Æä¶¯Ì¬¿â°æ±¾²»ÄܶÀÁ¢¹¤×÷£¬ÈÔÈ»ÐèÒªÆäËü¶¯Ì¬¿âµÄÖ§³Ö¡£

5.¾²Ì¬µ÷Ó÷½Ê½ºÍ¶¯Ì¬µ÷Ó÷½Ê½

  1£©¡¢¾²Ì¬µ÷Ó÷½Ê½£ºÓɱàÒëϵͳÍê³É¶Ô   DLL   µÄ¼ÓÔØºÍÓ¦ÓóÌÐò½áÊøÊ±   DLL   Ð¶ÔصıàÂ루È绹ÓÐÆäËü³ÌÐòʹÓøà  DLL£¬Ôò   Windows   ¶Ô   DLL   µÄÓ¦ÓüǼ¼õ1£¬Ö±µ½ËùÓÐÏà¹Ø³ÌÐò¶¼½áÊø¶Ô¸Ã   DLL   µÄʹÓÃʱ²ÅÊÍ·ÅËü£¬¼òµ¥ÊµÓ㬵«²»¹»Áé»î£¬Ö»ÄÜÂú×ãÒ»°ãÒªÇó¡£   
  ¡¡¡¡ÒþʽµÄµ÷ÓãºÐèÒª°Ñ²úÉú¶¯Ì¬Á¬½Ó¿âʱ²úÉúµÄ   .LIB   Îļþ¼ÓÈëµ½Ó¦ÓóÌÐòµÄ¹¤³ÌÖУ¬ÏëʹÓà  DLL   Öеĺ¯Êýʱ£¬Ö»Ðë˵Ã÷һϡ£Òþʽµ÷Óò»ÐèÒªµ÷Óà  LoadLibrary()   ºÍ   FreeLibrary()¡£³ÌÐòÔ±ÔÚ½¨Á¢Ò»¸ö   DLL   Îļþʱ£¬Á´½Ó³ÌÐò»á×Ô¶¯Éú³ÉÒ»¸öÓëÖ®¶ÔÓ¦µÄ   LIB   µ¼ÈëÎļþ¡£¸ÃÎļþ°üº¬ÁËÿһ¸ö   DLL   µ¼³öº¯ÊýµÄ·ûºÅÃûºÍ¿ÉÑ¡µÄ±êʶºÅ£¬µ«ÊDz¢²»º¬ÓÐʵ¼ÊµÄ´úÂë¡£LIB   Îļþ×÷Ϊ   DLL   µÄÌæ´úÎļþ±»±àÒëµ½Ó¦ÓóÌÐòÏîÄ¿ÖС£   
  ¡¡¡¡µ±³ÌÐòԱͨ¹ý¾²Ì¬Á´½Ó·½Ê½±àÒëÉú³ÉÓ¦ÓóÌÐòʱ£¬Ó¦ÓóÌÐòÖеĵ÷Óú¯ÊýÓë   LIB   ÎļþÖе¼³ö·ûºÅÏàÆ¥Å䣬ÕâЩ·ûºÅ»ò±êʶºÅ½øÈëµ½Éú³ÉµÄ   EXE   ÎļþÖС£LIB   ÎļþÖÐÒ²°üº¬Á˶ÔÓ¦µÄ   DL   LÎļþÃû£¨µ«²»ÊÇÍêÈ«µÄ·¾¶Ãû£©£¬Á´½Ó³ÌÐò½«Æä´æ´¢ÔÚ   EXE   ÎļþÄÚ²¿¡£   
  ¡¡¡¡µ±Ó¦ÓóÌÐòÔËÐйý³ÌÖÐÐèÒª¼ÓÔØ   DLL   Îļþʱ£¬Windows   ¸ù¾ÝÕâЩÐÅÏ¢·¢ÏÖ²¢¼ÓÔØ   DLL£¬È»ºóͨ¹ý·ûºÅÃû»ò±êʶºÅʵÏÖ¶Ô   DLL   º¯ÊýµÄ¶¯Ì¬Á´½Ó¡£ËùÓб»Ó¦ÓóÌÐòµ÷ÓõĠ  DLL   Îļþ¶¼»áÔÚÓ¦ÓóÌÐò   EXE     Îļþ¼ÓÔØÊ±±»¼ÓÔØÔÚµ½ÄÚ´æÖС£¿ÉÖ´ÐгÌÐòÁ´½Óµ½Ò»¸ö°üº¬   DLL   Êä³öº¯ÊýÐÅÏ¢µÄÊäÈë¿âÎļþ(.LIBÎļþ)¡£²Ù×÷ϵͳÔÚ¼ÓÔØÊ¹ÓÿÉÖ´ÐгÌÐòʱ¼ÓÔØ   DLL¡£¿ÉÖ´ÐгÌÐòÖ±½Óͨ¹ýº¯ÊýÃûµ÷Óà  DLL   µÄÊä³öº¯Êý£¬µ÷Ó÷½·¨ºÍ³ÌÐòÄÚ²¿Æä   ËüµÄº¯ÊýÊÇÒ»ÑùµÄ¡£   
    
  2£©¡¢¶¯Ì¬µ÷Ó÷½Ê½£ºÊÇÓɱà³ÌÕßÓà  API   º¯Êý¼ÓÔØºÍÐ¶ÔØ   DLL   À´´ïµ½µ÷Óà  DLL   µÄÄ¿µÄ£¬Ê¹ÓÃÉϽϸ´ÔÓ£¬µ«Äܸü¼ÓÓÐЧµØÊ¹ÓÃÄڴ棬ÊDZàÖÆ´óÐÍÓ¦ÓóÌÐòʱµÄÖØÒª·½Ê½¡£   
  ¡¡¡¡ÏÔʽµÄµ÷ÓãºÊÇÖ¸ÔÚÓ¦ÓóÌÐòÖÐÓà  LoadLibrary   »ò   MFC   ÌṩµÄ   AfxLoadLibrary   ÏÔʽµÄ½«×Ô¼ºËù×öµÄ¶¯Ì¬Á¬½Ó¿âµ÷½øÀ´£¬¶¯Ì¬Á¬½Ó¿âµÄÎļþÃû¼´ÊÇÉÏÃæÁ½¸öº¯ÊýµÄ²ÎÊý£¬ÔÙÓà  GetProcAddress()   »ñÈ¡ÏëÒªÒýÈëµÄº¯Êý¡£×Ô´Ë£¬Äã¾Í¿ÉÒÔÏóʹÓÃÈçͬ±¾Ó¦ÓóÌÐò×Ô¶¨ÒåµÄº¯ÊýÒ»ÑùÀ´µ÷ÓôËÒýÈ뺯ÊýÁË¡£ÔÚÓ¦ÓóÌÐòÍ˳ö֮ǰ£¬Ó¦¸ÃÓà  FreeLibrary   »ò   MFC   ÌṩµÄ   AfxFreeLibrary   ÊͷŶ¯Ì¬Á¬½Ó¿â¡£Ö±½Óµ÷Óà  Win32   µÄ   LoadLibary   º¯Êý£¬²¢Ö¸¶¨   DLL   µÄ·¾¶×÷Ϊ²ÎÊý¡£LoadLibary   ·µ»Ø   HINSTANCE   ²ÎÊý£¬Ó¦ÓóÌÐòÔÚµ÷Óà  GetProcAddress   º¯ÊýʱʹÓÃÕâÒ»²ÎÊý¡£GetProcAddress   º¯Êý½«·ûºÅÃû»ò±êʶºÅת»»Îª   DLL   ÄÚ²¿µÄµØÖ·¡£³ÌÐòÔ±¿ÉÒÔ¾ö¶¨   DLL   ÎļþºÎʱ¼ÓÔØ»ò²»¼ÓÔØ£¬ÏÔʽÁ´½ÓÔÚÔËÐÐʱ¾ö¶¨¼ÓÔØÄĸö   DLL   Îļþ¡£Ê¹Óà  DLL   µÄ³ÌÐòÔÚʹÓÃ֮ǰ±ØÐë¼ÓÔØ£¨LoadLibrary£©¼ÓÔØDLL´Ó¶øµÃµ½Ò»¸öDLLÄ£¿éµÄ¾ä±ú£¬È»ºóµ÷Óà  GetProcAddress   º¯ÊýµÃµ½Êä³öº¯ÊýµÄÖ¸Õ룬ÔÚÍ˳ö֮ǰ±ØÐëÐ¶ÔØDLL(FreeLibrary)¡£   
    


6.ʲôÊÇÀà?ʲôÊÇÀà¿â? 

  Á½¸ö¸ÅÄî´æÔÚÓÚÃæÏò¶ÔÏóµÄÓïÑÔ:
Àà,¹ËÃû˼Òå,¾ÍÊÇһЩӵÓÐÏàͬÊôÐÔµÄÊý¾ÝµÄ¼¯ºÏ,ºÍÏÖʵÖеÄÈËÀà,¶¯ÎïÀàÏàËÆ.ÓÐÀàµÄ¸ÅÄîÏà¹ØµÄ»¹Óи¸Àà,×ÓÀà,ÀàµÄ¼Ì³ÐµÈ.Ëùν¸¸ÀàºÍ×ÓÀàµÄ¹ØÏµÏ൱ÓÚÈ˺ÍÖйúÈ˵ĹØÏµ.ÀàÖÐÓÐÊôÐԺͷ½·¨,ÕâÁ½¸öÒ²ÊÇÖØÒªµÄ¸ÅÄî,ÉÏÊöÈý¸ö¸ÅÄî(¸¸Àà,×ÓÀà,ÀàµÄ¼Ì³Ð)¶¼Êǽ¨Á¢ÔÚËüµÄ»ù´¡ÉϵÄ.
Àí½âÁËÀà,Àà¿â¾ÍºÜ¼òµ¥ÁË,¾ÍÊÇÀàµÄ¼¯ºÏ.
ÒÔÏÂÊDZȽÏרҵµÄ½âÊÍ



 ÀࣨClass£©Êµ¼ÊÉÏÊǶÔijÖÖÀàÐ͵ĶÔÏó¶¨Òå±äÁ¿ºÍ·½·¨µÄÔ­ÐÍ¡£

      ÀàÊǶÔij¸ö¶ÔÏóµÄ¶¨Òå¡£Ëü°üº¬ÓйضÔÏó¶¯×÷·½Ê½µÄÐÅÏ¢£¬°üÀ¨ËüµÄÃû³Æ¡¢·½·¨¡¢ÊôÐÔºÍʼþ¡£Êµ¼ÊÉÏËü±¾Éí²¢²»ÊǶÔÏó£¬ÒòΪËü²»´æÔÚÓÚÄÚ´æÖС£µ±ÒýÓÃÀàµÄ´úÂëÔËÐÐʱ£¬ÀàµÄÒ»¸öеÄʵÀý£¬¼´¶ÔÏ󣬾ÍÔÚÄÚ´æÖд´½¨ÁË¡£ËäȻֻÓÐÒ»¸öÀ࣬µ«ÄÜ´ÓÕâ¸öÀàÔÚÄÚ´æÖд´½¨¶à¸öÏàͬÀàÐ͵ĶÔÏó¡£

      ¿ÉÒÔ°ÑÀà¿´×÷¡°ÀíÂÛÉÏ¡±µÄ¶ÔÏó£¬Ò²¾ÍÊÇ˵£¬ËüΪ¶ÔÏóÌṩÀ¶Í¼£¬µ«ÔÚÄÚ´æÖв¢²»´æÔÚ¡£´ÓÕâ¸öÀ¶Í¼¿ÉÒÔ´´½¨ÈκÎÊýÁ¿µÄ¶ÔÏó¡£´ÓÀà´´½¨µÄËùÓжÔÏó¶¼ÓÐÏàͬµÄ³ÉÔ±£ºÊôÐÔ¡¢·½·¨ºÍʼþ¡£µ«ÊÇ£¬Ã¿¸ö¶ÔÏó¶¼ÏóÒ»¸ö¶ÀÁ¢µÄʵÌåÒ»Ñù¶¯×÷¡£ÀýÈ磬һ¸ö¶ÔÏóµÄÊôÐÔ¿ÉÒÔÉèÖóÉÓëͬÀàÐÍµÄÆäËû¶ÔÏó²»Í¬µÄÖµ¡£

      Microsoft(r) Visual Basic(r) for Applications (VBA) ¹¤³ÌÖпɰüº¬Á½ÖÖ²»Í¬ÀàÐ͵ÄÀàÄ£¿é£ºÃ»ÓÐÈκÎÒ»ÖÖÓëÆä¹ØÁªµÄÓû§½çÃæµÄ»ù±¾ÀàÄ£¿é£»Óë´°Ìå»òÆäËü×é¼þ¹ØÁªµÄÀàÄ£¿é¡£ÀýÈ磬Óë´°ÌåÏà¹ØÁªµÄÀàÄ£¿é£¬ËüÃǺͻù±¾ÀàÄ£¿éÏàͬ£¬Ö»ÊÇËüÃÇÖ»ÓÐÔÚÄǸö´°Ìå´æÔÚÓÚÄÚ´æÖÐʱ£¬²Å´æÔÚÓÚÄÚ´æÖС£ÓµÓÐÏà¹ØÁªµÄÀàÄ£¿éµÄ¶ÔÏóµÄʾÀýÊÇ¡°Óû§´°Ì塱¡¢Microsoft(r) Access ´°ÌåºÍ±¨±í¡¢Microsoft(r) Word µÄ ThisDocument ¶ÔÏó£¬Microsoft(r) Excel µÄ ThisWorkbook ºÍ SheetN ¶ÔÏó¡£


      ÔÚÏÖʵÊÀ½çÖУ¬Äã¾­³£¿´µ½ÏàͬÀàÐ͵ÄÐí¶à¶ÔÏó¡£±ÈÈç £¬ÄãµÄ×ÔÐгµÖ»ÊÇÏÖʵÊÀ½çÖÐÐí¶à×ÔÐгµµÄÆäÖÐÒ»Á¾¡£Ê¹ÓÃÃæÏò¶ÔÏó¼¼Êõ£¬ÎÒÃÇ¿ÉÒÔ˵ÄãµÄ×ÔÐгµÊÇ×ÔÐгµ¶ÔÏóÀàµÄÒ»¸öʵÀý¡£Í¨³££¬×ÔÐгµÓÐһЩ״̬£¨µ±Ç°µµÎ»¡¢Á½¸öÂÖ×ӵȵȣ©ÒÔ¼°ÐÐΪ£¨¸Ä±äµµÎ»¡¢É²³µµÈµÈ£©¡£µ«ÊÇ£¬Ã¿Á¾×ÔÐгµµÄ״̬¶¼ÊǶÀÁ¢µÄ²¢ÇÒ¸úÆäËü×ÔÐгµ²»Í¬¡£

      µ±³§¼ÒÖÆÔì×ÔÐгµµÄʱºò£¬³§ÉÌÀûÓÃÁË×ÔÐгµ¹²ÓеÄÌØÐÔÀ´¸ù¾ÝÏàͬµÄÀ¶Í¼ÖÆÔìÐí¶à×ÔÐгµ¡£Èç¹ûÖÆÔìÒ»Á¾×ÔÐгµ¾ÍÒª²úÉúÒ»¸öÐÂÀ¶Í¼£¬ÄÇЧÂʾÍÌ«µÍÁË¡£

      ÔÚÃæÏò¶ÔÏóÈí¼þÖУ¬Í¬ÑùµØ£¬¿ÉÒÔÈÃÏàͬÖÖÀàµØÐí¶à¶ÔÏóÀ´¹²ÓÐÒ»Ð©ÌØÐÔ£¬±ÈÈç¾ØÐΡ¢¹ÍÔ±¼Ç¼¡¢ÊÓÆµ¼ÐµÈµÈ¡£¾ÍÏó×ÔÐгµÖÆÔìÉÌÈË£¬Äã¿ÉÒÔÀûÓÃÏàͬÖÖÀàµÄ¶ÔÏóÊÇÏàËÆµÄÊÂʵ²¢ÇÒÄã¿ÉÒÔΪÕâЩ¶ÔÏó´´½¨Ò»¸öÀ¶Í¼¡£¶Ô¶ÔÏóµÄÈí¼þÀ¶Í¼½Ð×öÀà¡£

      ×ÔÐгµµÄÀàÐèÒª¶¨ÒåһЩʵÀý±äÁ¿À´°üÀ¨µ±Ç°µµÎ»¡¢µ±Ç°Ëٶȵȵȡ£Õâ¸öÀཫΪʵÀý·½·¨¶¨ÒåºÍÌṩʵʩ·½·¨£¬ËüÔÊÐíÆï³µÕ߸ı䵵λ¡¢É²³µÒÔ¼°¸Ä±ä½Å̤°åµÄ½Ú×à¡£



      µ±Äã´´½¨ÁË×ÔÐгµÀàÒÔºó£¬Äã¿ÉÒÔ´ÓÕâ¸öÀà´´½¨ÈÎÒâ¸ö×ÔÐгµ¶ÔÏó¡£µ±Äã´´½¨ÁËÒ»¸öÀàµÄʵÀýºó£¬ÏµÍ³½«ÎªÕâ¸ö¶ÔÏóºÍµÄʵÀý±äÁ¿·ÖÅäÄڴ档ÿ¸öʵÀý½«¸øËùÓÐʵÀý±äÁ¿µÄ¸±±¾¶¨ÒåÔÚÀàÖС£


      ³ýÁËʵÀý±äÁ¿£¬À໹Ҫ¶¨ÒåÀàµÄ±äÁ¿¡£Àà±äÁ¿°üº¬Á˱»ÀàËùÓÐʵÀý¹²ÏíµÄÐÅÏ¢¡£±ÈÈ磬¼ÙÉèËùÓеÄ×ÔÐгµÓÐÏàͬµÄµµÎ»Êý¡£ÔÚ±¾Àý×ÓÖУ¬Òª¶¨ÒåÒ»¸öʵÀý±äÁ¿À´ÈÝÄɵµÎ»Êý¡£Ã¿Ò»¸öʵÀý¶¼»áÓбäÁ¿µÄ¸±±¾£¬µ«ÊÇÔÚÿһ¸öʵÀýÖÐÊýÖµ¶¼ÊÇÏàͬµÄ¡£ÔÚÕâÑùµÄÇé¿öÏ£¬Äã¿ÉÒÔ¶¨ÒåÒ»¸öÀà±äÁ¿À´°üº¬µµÎ»Êý£¬ÕâÑùËùÓеÄÀàµÄʵÀý¶¼¹²ÏíÕâ¸ö±äÁ¿¡£Èç¹ûÒ»¸ö¶ÔÏó¸Ä±äÁ˱äÁ¿£¬Ëü¾ÍΪ¸Ä±äÄǸöÀàµÄËùÓжÔÏó¡£ÀàͬÑù¿ÉÒÔ¶¨ÒåÀà·½·¨¡£Äã¿ÉÒÔÖ±½Ó´ÓÀàÖе÷ÓÃÀà·½·¨£¬È»¶øÄã±ØÐëÔÚÌØ¶¨µÄʵÀýÖе÷ÓÃʵÀý·½·¨¡£


7.LIBºÍDLL
   LIB   ÊÇ   Library   µÄËõд£¬ÔÚ³ÌÐò±àÒëʱÁ´½Ó   
   DLL   ÊÇ   Dynamic   Link   Library   £¨¶¯Ì¬Á´½Ó¿â£©µÄËõд£¬ÔÚ³ÌÐòÔËÐйý³ÌÖÐÁ´½Ó¡£ÓÃÒþʽµÄÁ¬½Óµ½Ò»¸öDLLÊǵÄʱºò£¬±ØÐëÒªÒ»¸öÒýÈë¿â£¨Import   Lib) ¾ÍÊÇDLLµÄLib¡£dllÊǸö±àÒëºÃµÄ³ÌÐò,  µ÷ÓÃʱ¿ÉÒÔÖ±½Óµ÷ÓÃÆäÖеĺ¯Êý,   ²»²Î¼Ó¹¤³ÌµÄ±àÒë.   ¶ølibÓ¦¸Ã˵ÊÇÒ»¸ö³ÌÐò¼¯,   Ö»ÊǰÑһЩÏàÓ¦µÄº¯Êý×ܽáÔÚÒ»Æð,   Èç¹ûµ÷ÓÃlibÖеĺ¯Êý,   ÔÚ¹¤³Ì±àÒëʱ,ÕâЩµ÷Óõĺ¯Êý¶¼½«²Î¼Ó±àÒë.   


8.DLLÓëLIBµÄÇø±ð:   
  1).DLLÊÇÒ»¸öÍêÕû³ÌÐò,ÆäÒѾ­¾­¹ýÁ´½Ó,¼´²»´æÔÚͬÃûÒýÓÃ,ÇÒÓе¼³ö±í£¬Óëµ¼Èë±í   
  libÊÇÒ»¸ö´úÂ뼯(Ò²½Ðº¯Êý¼¯)ËûûÓÐÁ´½Ó,ËùÒÔlibÓÐÈßÓà,µ±Á½¸ölibÏàÁ´½ÓʱµØÖ·»áÖØÐ½¨Á¢£¬µ±È»»¹ÓÐÆäËüÏà¹ØµÄ²»Í¬,ÓÃlib.exe¾ÍÖªµÀÁË   
  2)ÔÚÉú³Édllʱ£¬¾­³£»áÉú³ÉÒ»¸ö.lib(µ¼ÈëÓëµ¼³ö),Õâ¸ölibʵ¼ÊÉϲ»ÊÇÕæÕýµÄº¯Êý¼¯£¬Æäÿһ¸öµ¼³öµ¼È뺯Êý¶¼ÊÇÌø×ªÖ¸Áֱ½ÓÌø×ªµ½DLLÖеÄλÖã¬Õâ¸öÄ¿µÄÊÇÍâÃæµÄ³ÌÐòµ÷ÓÃdllʱ×Ô¶¯Ìø×ª   
  3).ʵ¼ÊÉÏ×î³£ÓõÄlibÊÇÓÉlib.exe°Ñ*.objÉú³ÉµÄlib,Õâ²ÅÊÇÕæÕýµÄ¿â£¬ËûÊÇ´úÂ뼯£¬¿ÉÍêÈ«´úÌæÄ¿±ê´úÂë

 

×÷Õߣºº¬Ð¦²»Óï
ר¼Ò·Ö£º50
¼¶±ð:1

·¢±íʱ¼ä£º2008-1-6 19:53:00    [»Ø¸´]  [ÒýÓÃ]
7 Â¥  
5).Gdi32

DLL Îļþ£º gdi32 »òÕß gdi32.dll 

DLL Ãû³Æ£º Windows GDI Client DLL 




[±à¼­]ÃèÊö 
gdi32.dllÊÇWindows GDIͼÐÎÓû§½çÃæÏà¹Ø³ÌÐò£¬ÓÃÓÚ¸¨Öú´´½¨×齨

6). ByValÊÇʲôÒâ˼

     ¹ý³ÌÖеĴúÂëͨ³£ÐèҪijЩ¹ØÓÚ³ÌÐò״̬µÄÐÅÏ¢²ÅÄÜÍê³ÉËüµÄ¹¤×÷¡£ÐÅÏ¢°üÀ¨ÔÚµ÷Óùý³Ìʱ´«µÝµ½¹ý³ÌÄڵıäÁ¿¡£µ±½«±äÁ¿´«  µÝµ½¹ý³Ìʱ£¬³Æ±äÁ¿Îª²ÎÊý¡£ 

²ÎÊýµÄÊý¾ÝÀàÐÍ
 
     ¹ý³ÌµÄ²ÎÊý±»È±Ê¡Îª¾ßÓРVariant Êý¾ÝÀàÐÍ¡£²»¹ý£¬Ò²¿ÉÒÔÉùÃ÷²ÎÊýΪÆäËüÊý¾ÝÀàÐÍ¡£
   ÀýÈ磬ÏÂÃæµÄº¯Êý½ÓÊÜÒ»¸ö×Ö·û´®ºÍÒ»¸öÕûÊý£º 

Function WhatsForLunch(WeekDay As String, Hour As Integer) As String 
'¸ù¾ÝÐÇÆÚ¼¸ºÍʱ¼ä£¬·µ»ØÎç²Í²Ëµ¥¡£ 
    If WeekDay = "Friday" then 
    WhatsForLunch = "Fish" 
 Else 
    WhatsForLunch = "Chicken" 
 End If 
    If Hour > 4 Then WhatsForLunch = "Too late" 
End Function 

ByVal °´Öµ´«µÝ(ByValue),Òâ˼ÊÇ´«ÈëµÄÐÎʽ²ÎÊý¸Ä±äÁË,µ«ÊDz»Ó°Ïìʵ¼Ê²ÎÊýµÄÊýÖµ 
±ÈÈç 
ÔÚÒ»¸öº¯Êýfn()ÓвÎÊýpara,ÊÇbyvalµÄ, 
ÄÇôÔÚº¯ÊýÀïÃæÈç¹ûÓÐÓï¾äpara=999, 
ÓбäÁ¿dim p as integer = 100; 
ÄÇôµ÷Óà
fn(p) 
Ö®ºó,pµÄÖµÈÔÈ»ÊÇ100,¶ø²»ÊÇ999,º¯ÊýÀïÃæµÄÐ޸IJ»Ó°ÏìÍâÃæµÄ±äÁ¿ 


 1.°´Öµ´«µÝ²ÎÊý 

     °´Öµ´«µÝ²ÎÊýʱ£¬´«µÝµÄÖ»ÊDZäÁ¿µÄ¸±±¾¡£Èç¹û¹ý³Ì¸Ä±äÁËÕâ¸öÖµ£¬ÔòËù×÷±ä¶¯Ö»Ó°Ï츱±¾¶ø²»»áÓ°Ïì±äÁ¿±¾Éí¡£ÓàByVal ¹Ø  ¼ü×ÖÖ¸³ö²ÎÊýÊǰ´ÖµÀ´´«µÝµÄ¡£ 

ÀýÈ磺 

Sub PostAccounts (ByVal intAcctNum as Integer) 

. 'ÕâÀï·ÅÓï¾ä¡£ 

End Sub 


ÓëËü¶ÔÓ¦µÄÊÇByRef ,°´ÒýÓô«µÝ 
Õâ¸öʱºò,µ÷ÓÃÁ˺¯ÊýÖ®ºó,pµÄÖµ¾Í±ä³É999ÁË 


 2.°´µØÖ·´«µÝ²ÎÊý 

°´µØÖ·´«µÝ²ÎÊýʹ¹ý³ÌÓñäÁ¿µÄÄÚ´æµØÖ·È¥·ÃÎÊʵ¼Ê±äÁ¿µÄÄÚÈÝ¡£½á¹û£¬½«±äÁ¿´«µÝ¸ø¹ý³Ìʱ£¬Í¨¹ý¹ý³Ì¿ÉÓÀÔ¶¸Ä±ä±äÁ¿Öµ¡£°´µØÖ·´«µÝ²ÎÊýÔÚ Visual Basic ÖÐÊÇȱʡµÄ¡£ 

Èç¹û¸ø°´µØÖ·´«µÝ²ÎÊýÖ¸¶¨Êý¾ÝÀàÐÍ£¬¾Í±ØÐ뽫ÕâÖÖÀàÐ͵ÄÖµ´«¸ø²ÎÊý¡£¿ÉÒÔ¸ø²ÎÊý´«µÝÒ»¸ö±í´ïʽ£¬¶ø²»ÊÇÊý¾ÝÀàÐÍ¡£Visual Basic ¼ÆËã±í´ïʽ£¬Èç¹û¿ÉÄܵϰ£¬»¹»á°´ÒªÇóµÄÀàÐͽ«Öµ´«µÝ¸ø²ÎÊý¡£ 

°Ñ±äÁ¿×ª»»³É±í´ïʽµÄ×î¼òµ¥µÄ·½·¨¾ÍÊǰÑËü·ÅÔÚÀ¨ºÅÄÚ¡£ÀýÈ磬ΪÁ˰ÑÉùÃ÷ΪÕûÊýµÄ±äÁ¿´«µÝ¸ø¹ý³Ì£¬¸Ã¹ý³ÌÒÔ×Ö·û´®Îª²ÎÊý£¬Ôò¿ÉÒÔÓÃÏÂÃæµÄÓï¾ä£º 

Sub CallingProcedure () 
   Dim intX As Integer 
   intX = 12 * 3 
   Foo (intX) 
End Sub 

Sub Foo (Bar As String) 
   MsgBox Bar 'Bar µÄֵΪ×Ö·û´®¡® 36 ¡¯¡£ 
End Sub

 

×÷Õߣºº¬Ð¦²»Óï
ר¼Ò·Ö£º50
¼¶±ð:1

·¢±íʱ¼ä£º2008-1-6 19:54:00    [»Ø¸´]  [ÒýÓÃ]
8 Â¥  
×¢ÊÍ3:   Private Declare Function CreateRoundRectRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long) As Long

1).CreateRoundRectRgn 

   VBÉùÃ÷ 
    Declare Function CreateRoundRectRgn Lib "gdi32" Alias "CreateRoundRectRgn" (ByVal X1 As Long, ByVal Y1 As Long,     ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long) As Long 
   ËµÃ÷ 
    ´´½¨Ò»¸öÔ²½Ç¾ØÐΣ¬¸Ã¾ØÐÎÓÉX1£¬Y1-X2£¬Y2È·¶¨£¬²¢ÓÉX3£¬Y3È·¶¨µÄÍÖÔ²ÃèÊöÔ²½Ç»¡¶È 
   ·µ»ØÖµ 
    Long£¬Ö´Ðгɹ¦ÔòÎªÇøÓò¾ä±ú£¬Ê§°ÜÔòΪ0 
   ²ÎÊý±í 
    ²ÎÊý   ÀàÐÍ        ËµÃ÷ 
    X1,Y1  Long    ¾ØÐÎ×óÉϽǵÄX£¬Y×ø±ê 
    X2,Y2  Long    ¾ØÐÎÓÒϽǵÄX£¬Y×ø±ê 
    X3     Long    Ô²½ÇÍÖÔ²µÄ¿í¡£Æä·¶Î§´Ó0£¨Ã»ÓÐÔ²½Ç£©µ½¾ØÐÎ¿í£¨È«Ô²£© ?
    Y3     Long    Ô²½ÇÍÖÔ²µÄ¸ß¡£Æä·¶Î§´Ó0£¨Ã»ÓÐÔ²½Ç£©µ½¾ØÐθߣ¨È«Ô²£© ?
   ×¢½â 
     ²»ÓÃʱһ¶¨ÒªÓÃDeleteObjectº¯Êýɾ³ý¸ÃÇøÓò
     Óøú¯Êý´´½¨µÄÇøÓòÓëÓÃRoundRect APIº¯Êý»­µÄÔ²½Ç¾ØÐβ»ÍêÈ«Ïàͬ£¬ÒòΪ±¾¾ØÐεÄÓұߺÍϱ߲»°üÀ¨ÔÚÇøÓòÖ®ÄÚ

 

×÷Õߣºº¬Ð¦²»Óï
ר¼Ò·Ö£º50
¼¶±ð:1

·¢±íʱ¼ä£º2008-1-6 19:55:00    [»Ø¸´]  [ÒýÓÃ]
9 Â¥  
×¢ÊÍ4: Private Declare Function CreateEllipticRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long 

1).CreateEllipticRgn 

 VBÉùÃ÷ 
   Declare Function CreateEllipticRgn Lib "gdi32" Alias "CreateEllipticRgn" (ByVal X1 As Long, ByVal Y1 As Long,    ByVal X2 As Long, ByVal Y2 As Long) As Long 
 ËµÃ÷ 
  ´´½¨Ò»¸öÍÖÔ²£¬¸ÃÍÖÔ²ÓëX1£¬Y1ºÍX2£¬Y2×ø±êµãÈ·¶¨µÄ¾ØÐÎÄÚÇР
 ·µ»ØÖµ 
  Long£¬Ö´Ðгɹ¦ÔòÎªÇøÓò¾ä±ú£¬Ê§°ÜÔòΪÁã 
 ²ÎÊý±í 
   ²ÎÊý    ÀàÐÍ        ËµÃ÷ 
   X1,Y1   Long    ¾ØÐÎ×óÉϽÇX£¬Y×ø±ê 
   X2,Y2   Long    ¾ØÐÎÓÒϽÇX£¬Y×ø±ê 
 ×¢½â 
  ²»ÓÃʱһ¶¨ÒªÓÃDeleteObjectº¯Êýɾ³ýÇøÓò¡£ÓÃEllipse APIº¯Êý»æ³öµÄÍÖÔ²Óë¸ÃÍÖÔ²ÇøÓò²»ÍêÈ«Ïàͬ£¬ÒòΪ±¾º¯ÊýµÄ»æÍ¼¼ÆËã²»  °üÀ¨¾ØÐεÄϱߺÍÓÒ±ß
 
ÏÂÃæµÄÀý×ÓÊÇÎÒËѵ쬶ÔÎÒÀí½âCreateEllipticRgnºÜÓаïÖú£º

 Ö÷Ì⣺º¯ÊýCreateEllipticRgnµÄÎÊÌâ  
 
×÷Õߣºnizainade

ÎÒÔÚÏÂÔØµÄvbÀý×ÓÓиö³¤ÉúÍÖÔ²´°ÌåµÄº¯Êý£¬ÏàÐÅ´ó¼ÒÒ²¶¼¼û¹ýÕâ¸öÀý×Ó
Ö»ÊÇÓÐÒ»µãÎÒ²»Ì«Ã÷°×£º

  w = Form1.Width / Screen.TwipsPerPixelX
  h = Form1.Height / Screen.TwipsPerPixelY
  a = CreateEllipticRgn(0, 0, w, h)
  b = SetWindowRgn(Me.hWnd, a, True) 

ÉÏÃæµÄ´úÂ룬w£¬hºÃÏñÊǰÑtwipת»»³ÉpixelµÄµ¥Î»£¬Ò»¶¨Òª×ª»»Âð£¬Ö±½ÓÓÃĬÈϵÄtwip²»ÐÐÂð£¬ÎÒ°ÑËû¸Ã³É£ºa = CreatEllopticRgn(0,0,width,height)£¬È´Ã»ÓÐÔËÐнá¹û£¬ÇëÎÊÕâÊÇÔõô»ØÊÂÄØ

1 Â¥  
ÒòΪÎÒÃǵÄ×ÀÃæµÄ·Ö±æÂÊÊÇÒÔÏñËØÀ´·ÖµÄ£¬¶øVBÀïÊÇÓÃ羡£ç¾ÓëÏñËØµÄ±ÈÊÇ15£¬ËùÒÔ²»×ª³ÉÏñËØµÄ»°£¬Ï൱ÓÚ½«´°ÌåÀ©´ó15±¶£¬µ±È»Ã»½á¹ûÁË¡£
 
2 Â¥  
1.ÄãµÄÒâ˼ÊÇCreateEllipticRgnÕâ¸öº¯ÊýµÄ²ÎÊýÒªÓÃÏóËØ×÷Ϊµ¥Î»,ÊDz»ÊÇapiº¯ÊýµÄͼÐκ¯Êý¶¼ÊÇÒÔÏóËØÎªº¯ÊýÄØ??
2.CreateEllipticRgn(0, 0, w, h)ÖеÄ,¼¸¸ö²ÎÊýÊÇÒÔÆÁÄ»µÄ×ø±êϵΪ±ê×¼Âð??,ÄÇô0,0 Ó¦¸ÃÔÚÆÁÄ»µÄ×î×óÉϽǰ¡,µ«Êǽá¹ûÔËÐеĴ°ÌåÊÇÔÚÆÁÄ»Öмä,ÇëÎÊÕâÊÇΪʲô???ÎÒ¶ÔvbµÄ×ø±êϵÓеãÃÔ»ó,¼´:²»ÖªµÀÊÇÆÁÄ»µÄ»¹ÊÇ´°ÌåµÄ,ÍûÖ¸½Ì!
 
 

3 Â¥  
ÎÊÌâÒ»£º
Ò»°ãÓ¦¸ÃÊÇÒÔÏñËØÎªµ¥Î»µÄ
ÎÊÌâ¶þ£º
ËüÊÇÒÔÆÁÄ»×ø±êϵΪ±ê×¼µÄ£¬ÎªÊ²Ã´»áÔÚÖмäÄØ£¿ºÇºÇÆäʵÄã¿´¿´CreateEllipticRgn 
º¯ÊýµÄ˵Ã÷¾ÍÖªµÀÁË
¡°´´½¨Ò»¸öÍÖÔ²£¬¸ÃÍÖÔ²ÓëX1£¬Y1ºÍX2£¬Y2×ø±êµãÈ·¶¨µÄ¾ØÐÎÄÚÇС±×¢ÒâÊǾØÐÎÄÚÇУ¬ËùÒÔÇ°ÃæµÄ×ø±êµã¼´X1¡¢Y1Ϊ0¡¢0£¬Ö»ÊÇÈ·±£Ëù»­µÄ¾ØÐÎÆðµãÊÇÆÁÄ»µÄ£¨0£¬0£©£¬µ«ÄÚÇÐÍÖÔ²
µÄÖÐÐĵã¾ÍÊÇÆÁÄ»ÖÐÐÄÁË¡£
4 Â¥  

"ÍÖÔ²ÓëX1£¬Y1ºÍX2£¬Y2×ø±êµãÈ·¶¨µÄ¾ØÐÎÄÚÇÐ"Õâ¾ä»°,Ó¦¸ÃÊÇ´´½¨Ò»¸öÒÔx1,y1Ϊ×óÉ϶¥µã,ÒÔx2,y2ΪÓÒ϶¥µãµÄ¾ØÐκó,ÔÙÔÚÕâ¸ö¾ØÐÎÀïÃæ»®ÄÚÇÐÍÖÔ²°É,°´ÕÕÕâ¸öÀí½â,¾ØÐÎÓ¦¸ÃÊÇÔÚ×óÉϽǰ¡

ÎÒµÄÀí½âÊDz»ÊÇÄÄÀïÓÐÎÊÌâ°¡,Íû¸ßÊÖ²»Áߴͽ̰¡  

 
 

5 Â¥  
Àí½âÊǶÔÁ˵«ÒòΪÕâ¸öÊÇ´´½¨ÍÖÔ²µÄ¹ý³ÌÄãÊÇ¿´²»µ½µÄ£¬Äܹ»ÈÃÄãµÄ´°Ìå³ÉΪÍÖÔ²µÄÊÇb = SetWindowRgn(Me.hWnd, a, True)Õâ¾ä£¬ÖÁÓÚΪʲôÍÖÔ²»áÔÚÆÁÄ»ÖмäÊÇÒòΪÄãµÄ´°ÌåµÄStartUpPositionÊôÐÔÉèÁËÆÁÄ»¾ÓÖС£
 


6 Â¥  
¶àл˧¸ç²»ÑáÆä·³µÄ»Ø´ðÎÒµÄÎÊÌâ,ÎÒÃ÷°×Á˵ÚÒ»¸öº¯ÊýÖ»ÊDzúÉúÍÖÔ²ÇøÓò,µÚ¶þ¸öÔÙ°Ñ´°ÌåÉèΪÍÖÔ²Ð͵Ä,

 

×÷Õߣºº¬Ð¦²»Óï
ר¼Ò·Ö£º50
¼¶±ð:1

·¢±íʱ¼ä£º2008-1-6 19:56:00    [»Ø¸´]  [ÒýÓÃ]
10 Â¥  
(×¢ÊÍ5) :    Private Declare Function CombineRgn Lib "gdi32" (ByVal hDestRgn As Long, ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long, ByVal nCombineMode As Long) As Long

1).CombineRgn   
 
 VBÉùÃ÷   
  Declare Function CombineRgn Lib "gdi32" Alias "CombineRgn" (ByVal hDestRgn As  
  Long, ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long, ByVal nCombineMode As  
  Long) As Long   
 ËµÃ÷   
  ½«Á½¸öÇøÓò×éºÏΪһ¸öÐÂÇøÓò   
 ·µ»ØÖµ   
  Long£¬ÏÂÁг£ÊýÖ®Ò»£º  
  COMPLEXREGION£ºÇøÓòÓл¥ÏཻµþµÄ±ß½ç  
  SIMPLEREGION£ºÇøÓò±ß½çûÓл¥Ïཻµþ  
  NULLREGION£ºÇøÓòΪ¿Õ  
  ERRORAPI£º²»ÄÜ´´½¨×éºÏÇøÓò   
 ²ÎÊý±í   
    ²ÎÊý        ÀàÐÍ        ËµÃ÷   
  hDestRgn      Long    °üº¬×éºÏ½á¹ûµÄÇøÓò¾ä±ú   
  hSrcRgn1      Long    Ô´ÇøÓò1   
  hSrcRgn2      Long    Ô´ÇøÓò2   
  nCombineMode  Long    ×éºÏÁ½ÇøÓòµÄ·½·¨¡£¿ÉÉèΪÏÂÊö³£Êý   

  RGN_AND hDestRgn   ±»ÉèÖÃΪÁ½¸öÔ´ÇøÓòµÄ½»¼¯   
  RGN_COPY hDestRgn  ±»ÉèÖÃΪhSrcRgn1µÄ¿½±´   
  RGN_DIFF hDestRgn  ±»ÉèÖÃΪhSrcRgn1ÖÐÓëhSrcRgn2²»ÏཻµÄ²¿·Ö   
  RGN_OR hDestRgn    ±»ÉèÖÃΪÁ½¸öÇøÓòµÄ²¢¼¯   
  RGN_XOR hDestRgn   ±»ÉèÖÃΪ³ýÁ½¸öÔ´ÇøÓòORÖ®ÍâµÄ²¿·Ö   

 ×¢Ò⣺

   CombineRgn hDestRgn, hSrcRgn1, hSrcRgn2, RGN_DIFF
    ½«ÇøÓòhSrcRgn1Öв»ÊôÓÚhSrcRgn2µÄÇøÓòºÏ²¢µ½combined_rgnÖУ¬Èç¹ûÄã´´½¨µÄhSrcRgn2ÇøÓòÒª´óÓÚhSrcRgn1ÇøÓò,¼´hSrcRgn1-    hSrcRgn2¡´0£¬ÄÇôhDestRgnÊǸö¿ÕÇøÓò!¼´±àÒëºóÒìÐδ°ÌåÎÞ·¨ÏÔʾ£¡ÓÃSetWindowRgn hWnd, hRgn, True¾Í»á¿´²»µ½Í¼ÐÎ
   ÕâÖÖ´íÎóÊÇÉèÖô°Ìå×ø±êģʽ´íÎóµ¼ÖµÄ,½«½¹µãËùÔÚ´°ÌåµÄscalemodeÉèÖÃ³ÉÆäËûģʽÄã»á¿´µ½Ð§¹ûµÄ.


 

×÷Õߣºº¬Ð¦²»Óï
ר¼Ò·Ö£º50
¼¶±ð:1

·¢±íʱ¼ä£º2008-1-6 19:57:00    [»Ø¸´]  [ÒýÓÃ]
11 Â¥  
×¢ÊÍ6: Private Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As long) As Long

1).SetWindowRgn
  ¡¾VBÉùÃ÷¡¿   
      Private   Declare   Function   SetWindowRgn   Lib   "user32"   Alias   "SetWindowRgn"   (ByVal   hWnd   As       Long,   ByVal   hRgn   As   Long,   ByVal   bRedraw   As   Boolean)   As   Long   
    
  ¡¾ËµÃ÷¡¿   
      ÕâÊÇÄÇЩºÜÄÑÓÐÈË×¢Òâµ½µÄ¶Ô±à³ÌÕßÀ´ËµÊǸö¾Þ´óµÄ±¦²ØµÄÒþº¬µÄAPIº¯ÊýÖеÄÒ»¸ö¡£±¾º¯ÊýÔÊÐíÄú¸Ä±ä´°¿ÚµÄÇøÓò¡£     
      Í¨³£ËùÓд°¿Ú¶¼ÊǾØÐεġª¡ª´°¿ÚÒ»µ©´æÔھͺ¬ÓÐÒ»¸ö¾ØÐÎÇøÓò¡£±¾º¯ÊýÔÊÐíÄú·ÅÆú¸ÃÇøÓò¡£ÕâÒâζ×ÅÄú¿ÉÒÔ´´½¨Ô²µÄ¡¢ÐÇÐΠ    µÄ´°¿Ú£¬Ò²¿ÉÒÔ½«Ëü·ÖΪÁ½¸ö»òÐí¶à²¿·Ö¡ª¡ªÊµ¼ÊÉÏ¿ÉÒÔÊÇÈκÎÐÎ×´     
    
  ¡¾·µ»ØÖµ¡¿   
      Long£¬Ö´Ðгɹ¦Îª·ÇÁãÖµ£¬Ê§°ÜΪ0     
    
  ¡¾±¸×¢¡¿   
      ÎªÇøÓòÖ¸¶¨µÄËùÓÐ×ø±ê¶¼ÒÔ´°¿Ú×ø±ê£¨²»Êǿͻ§×ø±ê£©±íʾ£¬ËüÃÇÒÔÕû¸ö´°¿Ú£¨°üÀ¨±êÌâÀ¸ºÍ±ß¿ò£©µÄ×óÉϽÇΪÆðµã   
    
  ¡¾²ÎÊý±í¡¿   
      hWnd   -----------     Long£¬½«ÉèÖÃÆäÇøÓòµÄ´°¿Ú   
    
      hRgn   -----------     Long£¬½«ÉèÖõÄÇøÓòµÄ¾ä±ú£¬Ò»µ©ÉèÖÃÁ˸ÃÇøÓò£¬¾Í²»ÄÜʹÓûòÐ޸ĸÃÇøÓò¾ä±ú£¬Ò²²»ÒªÉ¾³ýËü   
    
      bRedraw   --------     Boolean£¬ÈôΪTRUE£¬ÔòÁ¢¼´ÖØ»­´°¿Ú   


  2).user32 - user32.dll 


   user32 - user32.dll - DLLÎļþÐÅÏ¢ 
   DLL Îļþ£º user32 »òÕß user32.dll
   DLL Ãû³Æ£º Windows User API Client DLL
  
  ÃèÊö£º 
   user32.dllÊÇWindowsÓû§½çÃæÏà¹ØÓ¦ÓóÌÐò½Ó¿Ú£¬ÓÃÓÚ°üÀ¨Windows´¦Àí£¬»ù±¾Óû§½çÃæµÈÌØÐÔ¡£


  ÊôÓÚ£º Windows User API 
  ÏµÍ³ DLLÎļþ£º ÊÇ

  ³£¼û´íÎ󣺠File Not Found, Missing File, Exception Errors

 

×÷Õߣºº¬Ð¦²»Óï
ר¼Ò·Ö£º50
¼¶±ð:1

·¢±íʱ¼ä£º2008-1-6 19:59:00    [»Ø¸´]  [ÒýÓÃ]
12 Â¥  
×¢ÊÍ7 : Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long

1).DeleteObject

      WindowsÏÔʾÉ豸µÄÊôÐÔ£¬¹²ÓÐÏÂÃæ¼¸ÖÖ£ºÎ»Í¼¡¢»­Ë¢¡¢×ÖÌå¡¢»­±Ê¡¢ÇøÓò¡£Èç¹ûÒªÉèÖÃËüÃǵ½µ±Ç°É豸À¾ÍÐèҪʹÓà     SelectObjectº¯Êý£¬±ÈÈçÉÏÃæ½éÉܵÄ×ÖÌåÉèÖ㬾ͻáÓõ½Õâ¸öº¯Êý¡£µ±Äã´´½¨Ò»¸öλͼʱ£¬ÕâʱWindows¾Í»áÔÚÄÚ´æÀï·ÖÅäÒ»¿éÄÚ    ´æ¿Õ¼ä£¬ÓÃÀ´±£´æÎ»Í¼µÄÊý¾Ý¡£µ±Äã´´½¨×ÖÌåʱ£¬Ò²»á·ÖÅäÒ»¿éÄÚ´æ¿Õ¼ä±£´æ×ÖÌå¡£Èç¹û³ÌÐòÖ»ÊÇ·ÖÅ䣬¶ø²»È¥É¾³ý£¬¾Í»áÔì³É   ÄÚ´æÊ¹ÓÃÔ½À´Ô½¶à£¬×îºóµ¼µ½WindowsÕâ´±´óÂ¥µ¹ÏÂÀ´¡£Èç¹ûÄãÍü¼Çɾ³ýËü£¬¾ÍÔì³ÉÁËÄÚ´æÐ¹Â©¡£Òò´Ë£¬µ±Äã´´½¨ÏÔʾÉ豸×ÊԴʱ   £¬Ò»¶¨Òª¼ÇµÃɾ³ýËüÃǰ¡£¬·ñÔòÔËÐÐÄãµÄ³ÌÐòÔ½³¤£¬¾Íµ¼ÖÂϵͳ²»Îȶ¨¡£¼ÇµÃʹÓÃDeleteObjectº¯Êýȥɾ³ýËüÃÇ£¬°ÑÕ¼ÓõÄÄÚ´æ   ÊÍ·Å»ØÈ¥¸øÏµÍ³¡£

      DeleteObjectº¯Êý¹¦ÄÜ£º¸Ãº¯Êýɾ³ýÒ»¸öÂß¼­±Ê¡¢»­±Ê¡¢×ÖÌ塢λͼ¡¢ÇøÓò»òÕßµ÷É«°å£¬ÊÍ·ÅËùÓÐÓë¸Ã¶ÔÏóÓйصÄϵͳ×ÊÔ´£¬   ÔÚ   ¶ÔÏó±»É¾³ýÖ®ºó£¬Ö¸¶¨µÄ¾ä±úÒ²¾ÍʧЧÁË¡£

    º¯ÊýÔ­ÐÍ£ºBOOL DeleteObject(HGDIOBJ hObject)£»

    ²ÎÊý£º

    hObject£ºÂß¼­±Ê¡¢»­±Ê¡¢×ÖÌ塢λͼ¡¢ÇøÓò»òÕßµ÷É«°åµÄ¾ä±ú¡£

    ·µ»ØÖµ£º³É¹¦£¬·µ»Ø·ÇÁãÖµ£»Èç¹ûÖ¸¶¨µÄ¾ä±úÎÞЧ»òÕßËüÒѱ»Ñ¡ÈëÉ豸ÉÏÏÂÎÄ»·¾³£¬Ôò·µ»ØÖµÎªÁã¡£

    ×¢ÊÍ£ºµ±Ò»¸ö»æ»­¶ÔÏó£¨Èç±Ê»ò»­±Ê£©µ±Ç°±»Ñ¡ÈëÒ»¸öÉ豸ÉÏÏÂÎÄ»·¾³Ê±²»ÒªÉ¾³ý¸Ã¶ÔÏó¡£µ±Ò»¸öµ÷É«°å»­±Ê±»É¾³ýʱ£¬Óë¸Ã»­    ±ÊÏà¹ØµÄλͼ²¢²»±»É¾³ý£¬¸Ãͼ±ØÐëµ¥¶ÀµØÉ¾³ý¡£

    Windows CE£ºµ±¶ÔÏóÔÚµ±Ç°±»Ñ¡ÈëÒ»¸öÉ豸ÉÏÏÂÎÄ»·¾³Ê±£¬DeleteObjectº¯Êý·µ»Ø´íÎó¡£

 

×÷Õߣºº¬Ð¦²»Óï
ר¼Ò·Ö£º50
¼¶±ð:1

·¢±íʱ¼ä£º2008-1-6 19:59:00    [»Ø¸´]  [ÒýÓÃ]
13 Â¥  
×¢ÊÍ8: Private Const RGN_DIFF = 4

  Const RGN_AND = 1    '½«Á½¸öÇøÓòÏà¼Ó 
  Const RGN_OR = 2     '½«Á½¸öÇøÓò½øÐлò²Ù×÷ 
  Const RGN_XOR = 3    '½«Á½¸öÇøÓò½øÐÐÒì»ò²Ù×÷ 
  Const RGN_DIFF = 4   '½«Á½¸öÇøÓòÏà¼õ 
  Const RGN_COPY = 5   '´´½¨hSrcRgn1µÄ¿½±´ 

VBÖÐconstÊǸÉʲôµÄ?

 1.ÃèÊö
  ÉùÃ÷ÓÃÓÚ´úÌæÎÄ×ÖÖµµÄ³£Êý¡£ 

 2.Óï·¨
  [Public | Private] Const constname = expression
 Èç 
   Private Const sMyName As String = "Harry Potter" 
   Private Const rPi As Single = 3.1415927 
   Private Const rPi2 As Single = rPi * 2 

  Const Óï¾äµÄÓï·¨°üº¬ÒÔϲ¿·Ö£º
   ²¿·Ö                          ÃèÊö 
  Public              ¿ÉÑ¡¡£¸Ã¹Ø¼ü×ÖÓÃÓÚÔÚ Script ¼¶ÖÐÉùÃ÷¿ÉÓÃÓÚËùÓРScript ÖÐËùÓйý³ÌµÄ³£Êý¡£²»ÔÊÐíÔÚ¹ý³ÌÖÐʹÓᣠ
  Private             ¿ÉÑ¡¡£¸Ã¹Ø¼ü×ÖÓÃÓÚÔÚ Script ¼¶ÖÐÉùÃ÷Ö»¿ÉÓÃÔÚÉùÃ÷ËùÔڵĠScript Öеij£Êý¡£²»ÔÊÐíÔÚ¹ý³ÌÖÐʹÓᣠ
  constname           ±ØÑ¡¡£³£ÊýµÄÃû³Æ£¬¸ù¾Ý±ê×¼µÄ±äÁ¿ÃüÃûÔ¼¶¨¡£ 
  expression          ±ØÑ¡¡£ÎÄ×Ö»òÆäËû³£Êý£¬»ò°üÀ¨³ý Is ÍâµÄËùÓÐËãÊõ²Ù×÷·ûºÍÂß¼­²Ù×÷·ûµÄÈÎÒâ×éºÏ¡£ 

 3.×÷Óãº
  ¶¨Òå³£Á¿¡£Ò»À´¿ÉÒÔ·Àֹд´í£¬¶þÀ´Ð޸ķ½±ã¡£ 


 4.˵Ã÷

    ÔÚĬÈÏÇé¿öϳ£ÊýÊǹ«Óõġ£¹ý³ÌÖеij£Êý×ÜÊÇרÓе쬯ä¿É¼ûÐÔÎÞ·¨¸Ä±ä¡£Script(±ê׼ģ¿é)ÖУ¬¿ÉÓàPrivate ¹Ø¼ü×ÖÀ´¸Ä  ±ä Script¼¶³£Êý¿É¼ûÐÔµÄĬÈÏÖµ¡£²»¹ý£¬ÔÚÀàÄ£¿éÖУ¬³£ÊýÖ»ÄÜÊÇ˽Óе쬶øÇÒÓàPublic ¹Ø¼ü×ÖÒ²²»ÄܸıäÆä¿É¼ûÐÔ¡£ ÒªÔÚͬһÐÐÖÐÉùÃ÷Èô¸É¸ö³£Êý£¬¿ÉÓöººÅ½«Ã¿¸ö³£Êý¸³Öµ·Ö¿ª¡£ÓÃÕâÖÖ·½·¨ÉùÃ÷³£Êýʱ£¬Èç¹ûʹÓÃÁË Public »ò Private ¹Ø¼ü×Ö   £¬Ôò¸Ã¹Ø¼ü×Ö¶Ô¸ÃÐÐÖÐËùÓг£Êý¶¼ÓÐЧ¡£

 5.×¢Òâ
    ³£ÊýÉùÃ÷Öв»ÄÜʹÓñäÁ¿¡¢Óû§×Ô¶¨ÒåµÄº¯Êý»ò VBScript ÄÚ²¿º¯Êý£¨Èç Chr)¡£°´¶¨Ò壬ËüÃDz»ÄÜÊdz£Êý¡£ÁíÍâÒ²²»ÄÜ´Óº¬ÓР ²Ù×÷·ûµÄ±í´ïʽÖд´½¨³£Êý£¬¼´Ö»ÔÊÐíʹÓüòµ¥³£Êý¡£ÔÚ Sub »ò Function ¹ý³ÌÖÐÉùÃ÷µÄ³£ÊýÊǸùý³ÌµÄ¾Ö²¿³£Êý¡£ÔÚ¹ý³ÌÍâÉù    Ã÷µÄ³£ÊýÊÇÉùÃ÷ËùÔڵĠScript ÖеÄÈ«¾Ö³£Êý¡£¿ÉÒÔÔÚÈκÎʹÓñí´ïʽµÄµØ·½Ê¹Óó£Êý¡£ ³£Êý¿ÉÒÔʹ Script ¸ü¾ß¿É¶ÁÐÔ£¬ÇÒÒ×  ÓÚÐ޸ġ£ÔÚ Script ÔËÐÐʱ£¬³£Êý²»»áÏó±äÁ¿ÄÇÑùÎÞÒâÖб»¸Ä±ä¡£ Èç¹ûÔÚÉùÃ÷³£ÊýʱûÓÐÏÔʽµØÊ¹ÓàAs type ×Ӿ䣬Ôò¸Ã³£ÊýµÄÊý¾ÝÀàÐÍÊÇ×îÊÊºÏÆä±í´ïʽµÄÊý¾ÝÀàÐÍ¡£ÔÚ Sub¡¢Function »ò Property ¹ý³ÌÖÐÉùÃ÷µÄ³£Êý¶¼ÊǸùý³ÌµÄ.

 

×÷Õߣºº¬Ð¦²»Óï
ר¼Ò·Ö£º50
¼¶±ð:1

·¢±íʱ¼ä£º2008-1-6 19:59:00    [»Ø¸´]  [ÒýÓÃ]
14 Â¥  
×¢ÊÍ9:  If OutRgn <> 0 And InRgn <> 0 And MyRgn <> 0 Then Exit Sub 
  Õâ¾äÊÇ·ÀÖ¹ÖØ¸´´´½¨Í¼ÐÎ.ºóÃæCreateRectRgn,CreateRoundRectRgn,CreateEllipticRgnÈý¸öº¯Êý´´½¨ÇøÓòºóOutRgn,InRgnºÍMyRgn¾Í²»µÈÓÚ0ÁË

 

×÷Õߣºº¬Ð¦²»Óï
ר¼Ò·Ö£º50
¼¶±ð:1

·¢±íʱ¼ä£º2008-1-6 20:00:00    [»Ø¸´]  [ÒýÓÃ]
15 Â¥  
×¢ÊÍ10:  w = ScaleX(Form1.Width, vbTwips, vbPixels)
         h = ScaleY(Form1.Height, vbTwips, vbPixels)

  ScaleX¡¢ScaleY ·½·¨

--------------------------------------------------------------------------------

   scalexÊÇÔÚVBÖÐformµÄ·½·¨£¬¹¦ÄÜÊǰÑ×ø±ê³¤¶Èת»»³ÉÏñÔªËØÊý

   Ó¦ÓÃÓÚ½« Form£¬PictureBox »ò Printer µÄ¿í¶È»ò¸ß¶ÈÖµ´ÓÒ»ÖÖ ScaleMode ÊôÐԵĶÈÁ¿µ¥Î»×ª»»µ½ÁíÒ»ÖÖ¡£²»Ö§³ÖÃüÃû²ÎÊý¡£

 Óï·¨

   object.ScaleX (width, fromscale, toscale)

   object.ScaleY (height, fromscale, toscale)

 ScaleX ºÍ ScaleY ·½·¨µÄÓï·¨°üº¬Èçϲ¿·Ö£º

   ²¿·Ö                        ÃèÊö 
  object    ¿ÉÑ¡µÄ¡£Ò»¸ö¶ÔÏó±í´ïʽ£¬ÆäֵΪ¡°Ó¦ÓÃÓÚ¡±ÁбíÖеÄÒ»¸ö¶ÔÏó¡£Èç¹ûÊ¡ÂÔ object£¬Ôò´øÓн¹µãµÄ Form ¶ÔÏóȱʡΪ              object¡£ 
  width     ±ØÐèµÄ¡£Îª object Ö¸¶¨±»×ª»»µÄ¶ÈÁ¿µ¥Î»µÄÊýÁ¿¡£ 
  height    ±ØÐèµÄ¡£Îª object Ö¸¶¨±»×ª»»µÄ¶ÈÁ¿µ¥Î»µÄÊýÁ¿¡£ 
  fromscale ¿ÉÑ¡µÄ¡£Ò»¸ö³£Êý»òÊýÖµ£¬°´ÕÕÏÂÁÐÉèÖÃÖеÄÃèÊö£¬Ö¸¶¨ object µÄ width »ò height ´ÓÄÄÒ»ÖÖ×ø±êϵͳת»»¡£     fromscale ¿ÉÈ¡µÄÊýÖµÓë ScaleMode ÊôÐÔµÄÊýÖµ¼ÓÉÏ HiMetric µÄÐÂÊýÖµÏàͬ¡£ 
  toscale   ¿ÉÑ¡µÄ¡£Ò»¸ö³£Êý»òÊýÖµ£¬°´ÕÕÏÂÁС°ÉèÖÃÖµ¡±ÖеÄÃèÊö£¬Ö¸¶¨ object µÄ width »ò height ×ª»»µ½ÄÄÒ»ÖÖ×ø±êϵͳ    toscale   ¿ÉÈ¡µÄÊýÖµÓë ScaleMode ÊôÐÔµÄÊýÖµ¼ÓÉÏ HiMetric µÄÐÂÊýÖµÏàͬ¡£ 


 ÉèÖÃÖµ

  ÓÃÓÚ fromscale ºÍ toscale ÉèÖÃÖµÓУº

   ³£Êý                    Öµ        ÃèÊö 
   vbUser                  0      Óû§¶¨Ò壺ָʾ object µÄ¿í¶ÈºÍ¸ß¶ÈÉèÖÃΪ×Ô¶¨ÒåÖµ¡£ 
   vbTwips                 1      ç¾£¨Ã¿Âß¼­Ó¢´ç 1440 ç¾£»Ã¿Âß¼­ÀåÃ× 567 ç¾£©¡£ 
   vbPoints                2      °õ£¨Ã¿Âß¼­Ó¢´ç 72 µã£©¡£ 
   vbPixels                3      ÏñËØ £¨ÏÔʾÆ÷»ò´òÓ¡»ú·Ö±æÂʵÄ×îСµ¥Î»£©¡£ 
   vbCharacters            4      ×Ö·û£¨Ë®Æ½ = Ã¿µ¥Î» 120 ç¾£¬´¹Ö± = Ã¿µ¥Î» 240 ç¾£©¡£ 
   vbInches                5      Ó¢´ç 
   vbMillimeters           6      ºÁÃ× 
   vbCentimeters           7      ÀåÃ× 
   vbHimetric              8      HiMetric¡£Èç¹ûÊ¡ÂÔ fromscale£¬Ôò HiMetric ÎªÈ±Ê¡Öµ¡£ 
   vbContainerPosition     9      ¾ö¶¨¿Ø¼þλÖᣠ
   vbContainerSize         10     ¾ö¶¨¿Ø¼þ´óС¡£ 


 ËµÃ÷

   ScaleX ºÍ ScaleY ·½·¨°´ fromscale Ö¸¶¨µÄ¶ÈÁ¿µ¥Î»È¡Öµ£¨width »ò height£©£¬²¢½«Ëüת»»Îª toscale Ö¸¶¨µÄ¶ÈÁ¿µ¥Î»ÏÂÏà    Ó¦µÄÖµ¡£Ò²¿ÉÒÔ½áºÏ PaintPicture ·½·¨Ê¹ÓàScaleX ºÍ ScaleY¡£


--------------------------------------------------------------------------------

 Ó¦ÓÃÓÚ£º
  Form ¶ÔÏó¡¢Forms ¼¯ºÏ

  PictureBox ¿Ø¼þ

  PropertyPage ¶ÔÏó

  UserControl ¶ÔÏó


--------------------------------------------------------------------------------

 Ïà¹Ø»ù´¡ÖªÊ¶£º

 ÃüÃû²ÎÊý
   Ò»²ÎÊý£¬ÔÚ¶ÔÏó¿âÖÐÔ¤Ïȶ¨ÒåÁËÆäÃû³Æ¡£¶Ôÿ¸ö²ÎÊý£¬²»±Ø¾ÐÄàÓÚÓï·¨Ëù¹æ¶¨µÄÌØ¶¨Ë³ÐòÀ´Ìṩֵ£¬¶øÊÇÖ»Ðè°´ÈκÎ˳ÐòÓÃÃüÃû   ²ÎÊý·ÖÅäÖµ¡£ÀýÈ磬¼ÙÉèÒ»·½·¨½ÓÊÜÁËÈý¸ö²ÎÊý£º

   DoSomeThing namedarg1, namedarg2, namedarg3

   ÔÚ¶ÔÃüÃû²ÎÊý¸³ÖµÊ±£¬¿ÉʹÓÃÒÔÏÂÓï¾ä£º

   DoSomeThing namedarg3 := 4, namedarg2 := 5, namedarg1 := 20

   ×¢Ò⣬ÃüÃûµÄ²ÎÊý²»±Ø°´Óï·¨Öа²ÅŵÄÕý¹æË³Ðò³öÏÖ¡£

 ¶ÔÏó±í´ïʽ

   ËµÃ÷¾ßÌå¶ÔÏóµÄ±í´ïʽ£¬¿ÉÒÔ°üº¬¶ÔÏóµÄÈÝÆ÷¡£ÀýÈ磬ӦÓóÌÐò¿ÉÒÔÓµÓРApplication ¶ÔÏ󣬯äÖаüº¬ Document ¶ÔÏ󣬶ø    Document ¶ÔÏóÓÖ°üº¬ Text ¶ÔÏó¡£

 ½¹µã
   ÔÚÈκÎʱ¼ä½ÓÊÕÊó±êµ¥»÷»ò¼üÅÌÊäÈëµÄÄÜÁ¦¡£ÔÚ Microsoft Windows »·¾³ÖУ¬ÔÚͬһʱ¼äÖ»ÓÐÒ»¸ö´°¿Ú¡¢´°Ìå»ò¿Ø¼þ¾ßÓÐÕâÖÖÄÜ   Á¦¡£¡°¾ßÓн¹µã¡±µÄ¶ÔÏóͨ³£»áÒÔÍ»³öÏÔʾ±êÌâ»ò±êÌâÀ¸À´±íʾ¡£Óû§»òÓ¦ÓóÌÐò¿ÉÉèÖý¹µã¡£

 ç¾
   Ò»¸öÓëÆÁÄ»Î޹صĵ¥Î»£¬ÓÃÀ´±£Ö¤ÆÁĻӦÓóÌÐò¶ÔÆÁÄ»ÔªËØµÄ¶¨Î»ºÍ±ÈÀýÔÚËùÓеÄÏÔʾϵͳÉϵÄÒ»ÖÂÐÔ¡£Ò»ç¾µÈ¼ÛÓÚ 1/20 ¸ö´ò  Ó¡»úµÄ°õ¡£Ò»Âß¼­Ó¢´ç´óÔ¼ÓР1440 ç¾£¬Ò»Âß¼­ÀåÃ×Ô¼ 567 ç¾£¨´òӡʱµÄÒ»Ó¢´ç»òÒ»ÀåÃ×Ëù¶ÔÓ¦µÄÆÁÄ»Éϵij¤¶È£©¡£

 °õ
   ÔÚÓ¡Ë¢ÊõÓïÖУ¬Ò»°õÊÇ 1/72 Ó¢´ç¡£×ÖÌå´óСͨ³£ÓðõÀ´±í´ï¡£

 ÏñËØ
   ¼´¡°Í¼Æ¬ÔªËØ¡±µÄ¼ò³Æ£¬ËüÊÇ´ú±íÆÁÄ»ÉϵÄ×îСͼÐζÈÁ¿µ¥Î»µÄµã¡£ÏñËØÊÇÒÀÀµÓÚÆÁÄ»µÄ£¬¼´ÆÁÄ»ÔªËØµÄάÊýÒòÏÔʾϵͳºÍ·Ö±æÂʶøÒì¡£

 

×÷Õߣºº¬Ð¦²»Óï
ר¼Ò·Ö£º50
¼¶±ð:1

·¢±íʱ¼ä£º2008-1-6 20:01:00    [»Ø¸´]  [ÒýÓÃ]
16 Â¥  
×¢ÊÍ11:  Call CombineRgn(MyRgn, OutRgn, InRgn, RGN_DIFF)
 1.CallÓï·¨
   [Call] name [argumentlist]

      ²¿·Ö          ÃèÊö 
      Call          ¿ÉÑ¡²ÎÊý£»¹Ø¼ü×Ö¡£Èç¹ûÖ¸¶¨ÁËÕâ¸ö¹Ø¼ü×Ö£¬Ôò argumentlist ±ØÐë¼ÓÉÏÀ¨ºÅ£¬ÀýÈ磺Call MyProc(0) 
      name          ±ØÒª²ÎÊý£¬Òªµ÷ÓõĹý³ÌÃû³Æ¡£ 
      argumentlist  ¿ÉÑ¡²ÎÊý£¬±äÁ¿

 2.˵Ã÷
    µ÷ÓÃÒ»¸ö¹ý³Ìʱ£¬²¢²»Ò»¶¨ÒªÊ¹ÓàCall ¹Ø¼ü×Ö¡£Èç¹ûʹÓàCall ¹Ø¼ü×ÖÀ´µ÷ÓÃÒ»¸öÐèÒª²ÎÊýµÄ¹ý³Ì£¬argumentlist ¾Í±ØÐëÒª  ¼ÓÉÏÀ¨ºÅ¡£Èç¹ûÊ¡ÂÔÁË Call ¹Ø¼ü×Ö£¬ÄÇôҲ±ØÐëҪʡÂÔ argumentlis ÍâÃæµÄÀ¨ºÅ¡£Èç¹ûʹÓàCall Óï·¨À´µ÷ÓÃÄÚ½¨º¯Êý»òÓû§    ¶¨Ò庯Êý£¬Ôòº¯ÊýµÄ·µ»ØÖµ½«±»¶ªÆú¡£ÈôÒª½«Õû¸öÊý×é´«¸øÒ»¸ö¹ý³Ì£¬¾ÍҪʹÓÃÊý×éÃû£¬È»ºóÔÚÊý×éÃûºó¼ÓÉÏ¿ÕÀ¨ºÅ¡£

 3.Çø±ð£º
    Ó÷¨²»Í¬(Ò»¸öÓÐÀ¨ºÅÒ»¸öûÀ¨ºÅ)

   call testproc(a,b,c)

   testproc a,b,c
 4.×¢Òâ

  ÓÐʱµ÷ÓÃϵͳAPIʱÓÐʱ²»ÓÃCALL»á±àÒ벻ͨ¹ýµÄ£¬ÒòΪÓеÄAPI»á·µ»ØÖµ£¬±àÒëʱÌáʾ±í´ïʽ×ó±ßȱÉÙ±äÁ¿=¡£Èç¹ûƒÉ‚€ß^³Ì²»ÔÚ Ò»‚€´°ów»òÕß¼U‰K,ÄÇôCallҲûÓÃ

 5.×÷Óãº
  Call¾ÍÊǵ÷ÓÃij¸öº¯Êý£¬Èç  Call TestFunc()


 6.²¹³ä£º
    call²»ÊDZØÐëÒªÓõ쬵«ÊÇcallÊÇÓÐËü´æÔڵĵÀÀíµÄ¡£ÄãÖ±½Ó°ÑÒ»¸öº¯ÊýÃûдÔÚÄDZߣ¬Èç¹û´úÂëºÜ¶à£¬¿É¶ÁÐԾͲ»ÊǺܺã¬Ïà·´   £¬  Èç¹ûÔÚÇ°Ãæ¼ÓÉÏÒ»¸öCall£¬ÄÇô¾ÍÓÐһĿÁËÈ»µÄ¸Ð¾õ£¬ÖªµÀ֪ʶµ÷ÓõÄÒ»¸öº¯Êý£¬Èç¹ûûÓУ¬¿É¶ÁÐԾͲ»ÊǺܺÃÁË£¡Çø±ðÖ÷Òª   ÔÚÕâ  Àï¡£

 

×÷Õߣºº¬Ð¦²»Óï
ר¼Ò·Ö£º50
¼¶±ð:1

·¢±íʱ¼ä£º2008-1-6 20:01:00    [»Ø¸´]  [ÒýÓÃ]
17 Â¥  
×¢ÊÍ12: Form1.BackColor = QBColor(4)

   QBColorº¯Êý
    ÑÕɫҲ¿ÉÒÔÓÃQBColorº¯ÊýÀ´±íʾ,·µ»ØÒ»¸ö Long£¬ÓÃÀ´±íʾËù¶ÔÓ¦ÑÕɫֵµÄ RGB ÑÕÉ«Âë¡£Óï·¨QBColor(color)±ØÒªµÄ color    ²ÎÊýÊÇÒ»¸ö½çÓÚ 0 µ½ 15 µÄÕûÐÍ¡£Ê¼ÓÚ×îµÍÓÐЧ×Ö½Ú£¬·µ»ØÖµÖ¸¶¨Á˺졢ÂÌ¡¢À¶ÈýÔ­É«µÄÖµ£¬ÓÃÓÚÉèÖóɠVBAÖÐRGB ÏµÍ³µÄ¶ÔÓ¦    ÑÕÉ«¡£  

VBÖÐÓÃQBColor(i)´ú±íÒ»ÖÖÑÕÉ« 

iÖµ      ÑÕÉ«          iÖµ      ÑÕÉ« 
---    ------        ---    ------
0     ºÚÉ«             8       »ÒÉ«     gray
1     À¶É«             9       ÁÁÀ¶É« 
2     ÂÌÉ«             10      ÁÁÂÌÉ« 
3     ÇàÉ«             11      ÁÁÇàÉ«   cyan
4     ºìÉ«             12      ÁÁºìÉ« 
5     ·ÛºìÉ«           13      ÁÁ·ÛºìÉ« 
6     »ÆÉ«             14      ÁÁ»ÆÉ« 
7     °×É«             15      ÁÁ°×É« 


VB.NET color
     RGBº¯Êý                   ³£Êý            ·µ»ØÖµ            ÑÕÉ«
 --------------------       ----------       ----------         ------
  RGB(0£¬0£¬0)                VbBlack           &H0              ºÚÉ« 
  RGB(255£¬0£¬0)              VbRed             &HFF0            ºìÉ« 
  RGB(0£¬255£¬0)              VbGreen           &HFF00           ÂÌÉ« 
  RGB(0£¬0£¬255)              VbBlue            &HFF0000         À¶É« 
  RGB(0£¬255£¬255)            VbCyan            &HFFFF00         ÇàÉ« 
  RGB(255£¬0£¬255)            VbMagenta         &HFF00FF         ×ϺìÉ« 
  RGB(255£¬255£¬0)            VbYellow          &HFFFF           »ÆÉ« 
  RGB(255£¬255£¬255)          VbWhite           &HFFFFFF         °×É« 

 

×÷Õߣºº¬Ð¦²»Óï
ר¼Ò·Ö£º50
¼¶±ð:1

·¢±íʱ¼ä£º2008-1-6 20:02:00    [»Ø¸´]  [ÒýÓÃ]
18 Â¥  
×¢ÊÍ13:  Private Sub Form_Resize()

  Form_Resize()ʼþ£º

    Form_Resize()ÊÇÔÚForm_Initialize()ʼþºÍForm_Load()ʼþÖ®ºóµÄ´°Ìå³õʼ»¯Ê¼þ¡£ 

    Form_Resize()Ö÷ÒªÉèÖÃһЩ¿Ø¼þµÄÊôÐÔ£¬±ÈÈ磺 
     Text1.Width=...... 
     Command1.Top=......
    Form_Resize()ÊÇÒ»¸öʼþ¹ý³Ì£¬¶ø²»ÊÇʲôÊôÐÔ¡£ 
    ´ËʼþµÄ¼¤·¢Ìõ¼þÊǵ±´°ÌåµÄ´óСÓб仯ʱ·¢Éú¡£ 
    ÔÚÕâ¸öʼþÀÄã¿ÉÒÔ·ÅÈëÄãµÄ´úÂ룬×÷Äã×Ô¼ºÏë×÷µÄÊ¡£
  ²¹³ä£º
    Initialize   Ê¼þ   
                
      µ±Ó¦ÓóÌÐò´´½¨   Form¡¢MDIForm¡¢User¿Ø¼þ¡¢Property   Page   Webclass¡¢DHTML   Page   Designer»òÀàµÄʵÀýʱ·¢Éú¡£ 
    1.Óï·¨   
    
     Private   Sub   object_Initialize(   )   
    
     object   ËùÔÚ´¦´ú±í¶ÔÏó±í´ïʽ£¬ÆäÖµÊÇ¡°Ó¦ÓÃÓÚ¡±ÁбíÖеÄÒ»¸ö¶ÔÏó¡£   
    
    2.˵Ã÷   
    
     ÈçÏÂÇé¿ö´¥·¢   Initialize   Ê¼þ£º     
    
     Óà  CreateObject   º¯Êý´´½¨ÀàµÄÒ»¸öʵÀý£¬È磺     
         Set   X   =   CreateObject("Project1.MyClass")   
    
     ÒýÓô°Ìå»òÀàʵÀýµÄÊôÐÔ»òʼþ£¬¸ÃÊôÐÔ»òʼþÓÉÓû§´úÂë×Ô¶¯´´½¨¡£     
      MyForm.Caption   =   "Example"   
    
     Ó¦ÓôËʼþ³õʼ»¯   Form¡¢MDIForm¡¢»òÀàËùÓõÄÊý¾Ý¡£¶Ô   Form   »ò   MDIForm£¬Initialize   Ê¼þÔÚ   Load   Ê¼þÖ®       Ç°·¢Éú¡£   
   3.×÷Óãº
    formµÄinitializeʼþ½«»áÓÅÏÈÓÚformµÄloadʼþ±»´¥·¢£¬Èç¹û˵ÄãÒªÔÚformÔØÈëµÄʱºòÐèÒªÏÈ×öЩʲô¶¯×÷µÄ»°¿ÉÒÔÔÚÕâÁ½¸ö   Ê¼þÖмÓÈë´úÂë¡£±ÈÈç˵³õʼ»¯±äÁ¿£¬³õʼ»¯´°Ìå¿Ø¼þ°Ú·ÅµÄÑùʽ£¬³õʼ»¯¿Ø¼þÄÚÈݵȵȡ£

 

×÷Õߣºº¬Ð¦²»Óï
ר¼Ò·Ö£º50
¼¶±ð:1

·¢±íʱ¼ä£º2008-1-6 20:02:00    [»Ø¸´]  [ÒýÓÃ]
19 Â¥  
×¢ÊÍ14£º If WindowState = vbMinimized Then Exit Sub

vb³ÌÐòÖРwindowstate ÊôÐÔÓ÷¨£¿
  1.Óï·¨ 

   object.WindowState [= value] 

   ²¿·Ö             ÃèÊö 
  Object      ¶ÔÏó±í´ïʽ£¬ÆäÖµÊÇ¡°Ó¦ÓÃÓÚ¡±ÁбíÖеÄÒ»¸ö¶ÔÏó¡£ 
  Value       Ò»¸öÓÃÀ´Ö¸¶¨¶ÔÏó״̬µÄÕûÊý£¬¡°ÉèÖÃÖµ¡±ÖÐÓÐÏêϸÃèÊö¡£ 
  value µÄÉèÖÃֵΪ£º 

    ³£Êý            Öµ              ÃèÊö 
   vbNormal         0           £¨È±Ê¡Öµ£©Õý³£ ¡£ 
   VbMinimized      1            ×îС»¯£¨×îС»¯ÎªÒ»¸öͼ±ê£© 
   VbMaximized      2            ×î´ó»¯£¨À©´óµ½×î´ó³ß´ç£© 

   windowstate=0 'ƽ³£Ä£Ê½ 
   windowstate£½1 '×îС»¯Ä£Ê½ 
   windowstate=2 '×î´ó»¯Ä£Ê½ 

  2.˵Ã÷ 

       ÔÚ´°Ìå±»ÏÔʾ֮ǰ£¬WindowState ÊôÐÔ³£³£±»ÉèÖÃΪÕý³£ (0)£¬¶ø²»¹ÜÆä³õʼÉèÖÃÖµ¡£Õâ·´Ó³ÔÚ Height¡¢Left¡¢     ScaleHeight¡¢ScaleWidth¡¢Top¡¢ºÍ Width ÊôÐÔÉè      ÖÃÖµÖС£Èç¹û´°ÌåÔÚËüÒѱ»ÏÔʾºó±»Òþ²Ø£¬ÄÇôÕâЩÊôÐÔ½«·´Ó³ÒÔǰµÄ״̬     Ö±µ½´°Ìå±»ÔÙ´ÎÏÔʾ£¬¶ø²»¹ÜÔÚ´ËÆÚ¼ä¶Ô WindowState ÊôÐÔËù×÷µÄÈκθı䡣 
  È磺
   Private Sub Form_Load () 
      Form2.Show ' ÏÔʾ Form2¡£ 
   End Sub 

   Private Sub Form_Resize () 
    ' Èç¹û¸¸´°Ìå±»×îС»¯... 
      If Form1.WindowState = vbMinimized Then 
      ' ...Òþ²Ø Form2¡£ 
      Form2.Visible = False 
      ' Èç¹û¸¸´°Ìå²»ÔÙÊÇ×îС»¯... 
      Else 
      ' ...»Ö¸´ Form2¡£ 
      Form2.Visible = True 
     End If 
   End Sub
  3.×÷ÓÃ
   ÓÃÀ´¿ØÖÆ´°¿ÚµÄÏÔʾ/Òþ²Ø

 

×÷Õߣºº¬Ð¦²»Óï
ר¼Ò·Ö£º50
¼¶±ð:1

·¢±íʱ¼ä£º2008-1-6 20:03:00    [»Ø¸´]  [ÒýÓÃ]
20 Â¥  
×¢ÊÍ15£º   border_width = (wid - ScaleWidth) / 2     
      wid   ------------- --------       ÊÇForm2µÄ´°Ìå¿í¶È
      ScaleWidth--------- --------       ÊÇForm2µÄʵ¼Ê¹¤×÷Çø¿í¶È£¬¼´³ýÈ¥±ß¿òµÄ¿í¶È
      (wid - ScaleWidth) / 2------       ¼´´°Ìå±ß¿ò¿í¶È




 1.Ò»¸ö´°ÌåÖÐwidthÓëscalewidthµÄ¾ßÌåÇø±ð     
  
    widthÊÇÈÝÆ÷µÄ¿í¶È,µ¥Î»ÊÇç¾£¨ºÜСµÄµ¥Î»£©   
    scalewidthÊÇÈÝÆ÷ÀïÃæÄã×Ô¼º¶¨ÒåµÄ¿í¶È£¬±ÈÈç˵ÄãÏ뻭ͼ£¬±íʾ×î¿í3¹«ÀÄÇôÄã¾Í¿ÉÒÔ×Ô¼ºÓÃÕâ¸öÊôÐÔ¶¨Òå×Ô¼ºµÄ×ø±êϵͳ 

    ¾Ù¸öÀý×Ó:   
      width±ä´óÁËÒ»±¶,ÄÇô´°ÌåÔÚÆÁÄ»ÉϾͿíÁËÒ»±¶   
      ScaleWidth±ä´óÁËÒ»±¶,´°ÌåÔÚÆÁÄ»ÉϵĴóС²»»áÓб仯   
      µ«´°ÌåÄÚµÄ×ø±êϵ»áÓб仯   
      Èç¹ûÔ­À´×ø±êÊÇ(0,0)-(100,100),ÄÇô¾Í»á±ä³É(0,0)-(200,100)   
      Õâʱ,ÄãForm1.PSet   (50,   50),Æäʵ¾ÍµÈÓÚScaleWidth¸Ä±äÒÔǰµÄForm1.PSet   (25,   50)



    scalewidthÊÇÒ»¸ö¶ÔÏóÄÚ²¿µÄ×ø±êϵͳµÄÒ»¸ö¿í¶ÈÖµ
    ¶øwidthÊÇÒ»¸ö¶ÔÏóµÄ¿í¶È£¬ÆäÖµ±ÈscalewidthÒª´ó£¬ÒòΪ°üº¬Íⲿ±ß¿òµÄ³¤¶È
    Scale±íʾÕâ¸ö´°ÌåµÄ³ý±êÌâÀ¸µÄ×ø±ê·Ö±æÊýÖµ...
    ¸Ä±äÁËScaleModeºó£¬ScaleWidthºÍScaleHeight¶¼»á×Ô¶¯ËæÖ®±ä»¯£¬µ«WidthºÍHeight²»»á±ä
    ×Ô¼ºÊÔÊÔ¾ÍÖªµÀÁË£¬
    Ò»¸ö´°Ìå print me.width & "----" & me.Scalewidth ,»á·¢ÏÖ£¬µÚÒ»¸öÊýÖµ±ÈµÚ¶þ¸ö´óÒ»µãµã£¬ me.width »ñµÃµÄÊÇ´°Ìå(°üÀ¨±ß¿ò)µÄ¿í¶È£¬me.Scalewidth £¬»ñµÃµÄÊÇ´°      Ìå( ²»°üÀ¨±ß¿ò )µÄ¿í¶ÈÇø±ð½ö´Ë¶øÒÑ£¬x=me.Scalewidth /2,µÃµ½µÄÊÇ´°ÌåºáÏòµÄÖÐÐÄλÖã¬ÅäºÏ y=me.scaleheight/2£¬¾Í»ñµÃÁË´°ÌåÖÐÐÄλÖõÄ×ø±ê

    scalewidth  Êµ¼Ê¹¤×÷Çø¿í¶È
    scaleheight Êµ¼Ê¹¤×÷Çø¸ß¶È
    scaletop    Êµ¼Ê¹¤×÷ÇøµÄÉ϶¥µã
    scaleLeft   Êµ¼Ê¹¤×÷ÇøµÄ×ó¶¥µã

    width       ¿í¶È
    height      ¸ß¶È
    top         É϶¥µã
    Left        ×ó¶¥µã

    ±ÈÈçformÓµÓÐÒÔÉÏÊôÐÔ£¬Èç¹ûÏë»ñµÃÅ×È¥±ß¿òµÄ³ß´ç£¬ÔòÐèÒªscale
    ÐÞ¸Äscalewidth ²»»á¸Ä±ä´°ÌåµÄ´óС Ö»¸Ä±ä×ø±êϵͳ
    ½¨Òé¶ÁһϠ´°ÌåµÄ×ø±êϵͳ¼°scalemode




 2.ScaleHeight¡¢ScaleWidth   ÊôÐÔ   
                
    
  µ±Ê¹ÓÃͼÐη½·¨»òµ