云外归鸟工作室网站

标题: [系统]打开文件对话框NB [打印本页]

作者: kjgmj    时间: 2010-10-24 10:05
标题: [系统]打开文件对话框NB
OpenFile.Bi

#定义 IDD_DLG1 1000
#定义 IDC_BTN1 1001
#定义 IDC_EDT1 1002
常量 szNULL = !"\0"
常量 szFilter = "FontFiles(*.ttf,*.fon)" &szNULL &"*.ttf;*.fon" &szNULL
变量 共享 hInstance 为 HINSTANCE

OpenFile.Bas


#引用 仅一次 "windows.bi"
#引用 仅一次 "win/commdlg.bi"
#引用 "OpenFile.bi"
声明 函数 DlgProc (传值 hWnd 为 HWND , 传值 uMsg 为 UINT , 传值 wParam 为 WPARAM , 传值 lParam 为 LPARAM)为 整数型
  hInstance = GetModuleHandle (NULL)
  DialogBoxParam (hInstance , 转换类型 (字符型 指针 , IDD_DLG1), NULL , @DlgProc , NULL)
  ExitProcess (0)
  结束
函数 OpenFontFile (传值 hWin 为 HWND)为 文本
  变量 ofn 为 OPENFILENAME
  变量 buff 为 字符型 * 260
  ofn.lStructSize = 取尺寸 (OPENFILENAME)
  ofn.hwndOwner = hWin
  ofn.hInstance = hInstance
  ofn.lpstrInitialDir = 取文本指针 ("C:\")
  buff = 文本 (260 , 0)
  ofn.lpstrFile = @buff
  ofn.nMaxFile = 260
  ofn.lpstrFilter = 取文本指针 (szFilter)
  ofn.lpstrTitle = 取文本指针 ("新建字体")
  ofn.Flags = OFN_PATHMUSTEXIST 或 OFN_HIDEREADONLY 或 OFN_EXPLORER
  如果 GetOpenFileName (@ofn)则
    返回 buff
  结束 如果
结束 函数
函数 DlgProc (传值 hWin 为 HWND , 传值 uMsg 为 UINT , 传值 wParam 为 WPARAM , 传值 lParam 为 LPARAM)为 整数型
  变量 为 long id , 事件 , x , y
  变量 hBtn 为 HWND
  变量 rect 为 RECT
  变量 buff 为 字符型 * 260
  判断 分支 uMsg
    分支 WM_INITDIALOG
      '
    分支 WM_CLOSE
      EndDialog (hWin , 0)
      '
    分支 WM_COMMAND
      id = 取低十六位 (wParam)
      事件 = 取高十六位 (wParam)
      判断 分支 id
        分支 IDC_BTN1
          buff = OpenFontFile (hWin)
          SetDlgItemText (hWin , IDC_EDT1 , @buff)
          '
      结束 判断
    分支 WM_SIZE
      GetClientRect (hWin , @rect)
      hBtn = GetDlgItem (hWin , IDC_BTN1)
      x = rect.right-100
      y = rect.bottom-35
      MoveWindow (hBtn , x , y , 97 , 31 , TRUE)
      '
    分支 否则
      返回 FALSE
      '
  结束 判断
  返回 TRUE
结束 函数






欢迎光临 云外归鸟工作室网站 (http://www.ywgn.net/) Powered by Discuz! X3