查阅了很多资料,就是看不懂private const后面为什么要那样赋值,有的人说是常量不用去管,是不是我只知道常量后面那些值我可以完全不用去管,这些常量的赋值在哪里可以找到呢?
Option Explicit
Private Const FILE_LIST_DIRECTORY = &H1
Private Const FILE_SHARE_READ = &H1&
Private Const FILE_SHARE_DELETE = &H4&
Private Const OPEN_EXISTING = 3
Private Const FILE_FLAG_BACKUP_SEMANTICS = &H2000000
Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, ByVal PassZero As Long, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal PassZero As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As LongDim File_Share_Flag As Long
Dim hDir As Long
Private Sub cmdlock_Click()
    Dim PathDir As String
    PathDir = Text1.Text
    hDir = CreateFile(PathDir, FILE_LIST_DIRECTORY, File_Share_Flag, _
                      ByVal 0&, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, ByVal 0&)
    cmdlock.Enabled = False
    cmdunlock.Enabled = True
End Sub
Private Sub cmdunlock_Click()
    CloseHandle hDir
    cmdlock.Enabled = True
    cmdunlock.Enabled = False
End Sub
Private Sub Form_Load()
    File_Share_Flag = 0 'if =FILE_SHARE_READ then read only (for example)
End Sub
Private Sub Form_Unload(Cancel As Integer)
    Call cmdunlock_Click
End Sub

解决方案 »

  1.   

    当调用 API 函数时,该函数所对应的常量是微软已定义好的,一般可需先通过查阅 MSDN 中该函数的各常量参数说明,根据其常量名称,再到vb安装路径下的...\Microsoft Visual Studio\Common\Tools\Winapi\WIN32API.TXT 中查找到对应的值;有的个别常量还要到 *.h 头文件中才有。
    以上是我所知道的方式,仅供参考.
      

  2.   

    教你一个办法:点击VC的编辑--查找文件。选择查找目录为Include目录。查找你要查找的常量。比如如果查找到这样的结果,define SND_MEMORY          0x0004,就在VB声明为Private Const SND_MEMORY=&H4
      

  3.   

    常量是为了代码可读性而设计的I = PostMessage(hwnd, &H201, 0, (mX And &HFFFF) + (mY And &HFFFF) * &H10000)与I = PostMessage(hwnd, WM_LBUTTONDOWN, 0, (mX And &HFFFF) + (mY And &HFFFF) * &H10000)哪一个能一眼一看就明白大概的功能呢?至于找常量,一般来说是使用API浏览器.不过VB自带的我很久没使用过了,一直是在使用ApiViewer2004:http://www.activevb.de/rubriken/apiviewer/index-apiviewereng.html