以下是VB代码,我想把它转为PB,可是不知道 AND NOT 是什么意思?起什么作用?是求与非吗?
========================================================================
 Private   Declare   Function   GetWindowLong   Lib   "user32"   Alias   "GetWindowLongA"   (ByVal   hwnd   As   Long,   ByVal   nIndex   As   Long)   As   Long   
  Private   Declare   Function   SetWindowLong   Lib   "user32"   Alias   "SetWindowLongA"   (ByVal   hwnd   As   Long,   ByVal   nIndex   As   Long,   ByVal   dwNewLong   As   Long)   As   Long   
    
  Private   Const   WS_SYSMENU   =   &H80000   
  Private   Const   WS_MINIMIZEBOX   =   &H20000   
  Private   Const   WS_MAXIMIZEBOX   =   &H10000   
    
  Private   Const   GWL_STYLE   =   (-16)   
    
  Private   Sub   Form_Load()   
          Dim   TempLng   As   Long   
            
          TempLng   =   GetWindowLong(Me.hwnd,   GWL_STYLE)   
          TempLng   =   TempLng   And   Not   WS_MINIMIZEBOX   '最小化   
          TempLng   =   TempLng   And   Not   WS_MAXIMIZEBOX   '最大化   
          SetWindowLong   Me.hwnd,   GWL_STYLE,   TempLng   
            
  End   Sub
=========================================================================

解决方案 »

  1.   

    and 是 and  ,not  是 not
    它俩没有直接关系!
    你要考虑运算优先级,先not 再and
      

  2.   

    TempLng = TempLng And Not WS_MINIMIZEBOX '最小化  如果TempLng 不等于 WS_MINIMIZEBOX的时候TempLng 等于 TempLng否则TempLng=0
      

  3.   

    TempLng   =   TempLng   And   Not   WS_MINIMIZEBOX   '最小化   
              TempLng   =   TempLng   And   Not   WS_MAXIMIZEBOX   '最大化  
    等效:
              TempLng   =   TempLng   And   ( Not   WS_MINIMIZEBOX )   '最小化   
              TempLng   =   TempLng   And   ( Not   WS_MAXIMIZEBOX )   '最大化
      

  4.   

    先将 WS_MINIMIZEBOX  取反 然后再与 TempLng  做与运算,将结果写回TempLng
    这一过程都是位运算.