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
结束 函数
|