自动取款机示例应用程序

本示例应用程序演示如何在 Visual Basic 中使用资源文件。该应用程序包含三个窗体、一个标准模块和一个资源文件。运行示例应用程序自动取款机 (Atm.vbp) 后,将显示一个打开的屏幕,允许使用多种语言,包括德语、法语、意大利语和西班牙语,进行银行业务操作。

以下代码摘自 FrmInput.frm,加载保存在 Atm32.res 文件中的资源,该文件包含所有语言的本地化字符串。

Sub Form_Load()
   imgFlag = LoadResPicture(I, vbResBitmap)
   Caption = LoadResString(I)
   lblPINCode = LoadResString(1 + I)
   fraAccount = LoadResString(2 + I)
   optChecking.Caption = LoadResString(3 + I)
   optSavings.Caption = LoadResString(4 + I)
   lblAmount = LoadResString(5 + I)
   cmdOK.Caption = LoadResString(6 + I)
   SetCursor cmdOK
End Sub

Sub cmdOK_click()
   '显示一条操作信息。
   MsgBox LoadResString(7 + I)
   frmAmountWithdrawn.Show vbModal
   Unload Me
End Sub

运行时,本段代码根据用户在打开的屏幕上选择的语种所决定的偏移量,从资源文件中读入相应的部分。偏移量是在标准模块中定义的公共变量,它表示从起点到特定条目的距离。在示例应用程序 ATM 中,偏移量为 I

资源文件保留资源标识符 16 至 47 用于英语,资源标识符 48 至 79 用于法语,资源标识符 80 至 111 用于德语,以此类推。每种语言都有相应的本地化条目构成示例应用程序的数据块,当前每种语言的数据块包含十一项资源。

本示例应用程序包含了几个数据块,这是一种只采用一个资源文件实现与多种语言相关的资源文件的变通方式。根据应用程序的特性,可能考虑为每种语言使用一个资源文件,或使用一个资源文件包含所有本地化的数据块。

示例应用程序自动取款机的设计展示了超出本章前面所述内容的几个优点:

详细信息 请参阅《语言参考》的“LoadResString 函数”,“LoadResPicture 函数”和“LoadResData 函数”。关于资源文件的内容,请参阅“再论编程”中“利用资源文件进行工作”以及“性能和兼容性设计”。