| 建立应用程序 
  建立一个MDI应用程序 
  使用w_frame,w_sheet窗口作为你的框架窗口与表单窗口的父类。在w_sheet窗口 中增加你的应用程序中所有表单窗口需要的事件、实例变量、函数。 
  你必须为每一个表单窗口定义菜单。 
  具体步骤: 
  1. 为应用程序在w_frame窗口中作特定的修改。最好是建立一个w_frame窗口的子类,然后再修改这子类。 
  2. (可选)在w_sheet中增加实例变量、函数、用户自定义事件。 
  3. 建立继承w_sheet的表单窗口。 
  4. 建立一个框架窗口(frame window)用的菜单,通常是选用w_frame 。 
  5. 为框架窗口指定相应的框架窗口菜单。 
  6. 建立表单窗口的菜单 
  7. 为表单窗口(sheet window)指定相应的表单菜单。 
  8. 在n_cst_appmanager的pfc_Open事件中加入打开框架窗口的代码。 
  9. (可选)在必要时候,开启框架窗口Service 。 
  l_ 调用w_frame的of_SetStatusBar函数开启状态条Service 。 
  l_ 调用w_frame的of_SetSheetManager函数开启表单管理Service 。 
  在MDI应用程序中打开表单窗口: 
  1. 在菜单项的Clicked事件中编写有关打开表单窗口的脚本。你需要将表单窗口的名称以字符串的形式传递给Message.StringParm,然后以pfc_Open为参数调用of_SendMessage函数: 2. 在w_frame的pfc_Open事件中访问Message.StringParm,打开指定的表单窗口。| n_cst_menu lnv_menu 
Message.StringParm = "w_products" 
lnv_menu.of_SendMessage(this,”pfc_Open”) | 
 建立一个SDI应用程序 
  在使用PFC建立SDI应用程序中,你将使用w_main窗口作为你的所有main类型窗口的父类。为了使得你的事件、函数、实例变量能够在所有的窗口中都有效,只需将它们加到w_main中。 
  如果你的窗口需要菜单,那么你必须为每一个窗口定义菜单。 
  具体步骤 
  1. 继承w_main窗口,建立一个main类型窗口,最为主窗口。最好是直接修改w_main窗口。 
  2. 建立一个主菜单。 
  3. 根据需要建立其他的菜单与窗口。 
  4. 在n_cst_appmanager的pfc_Open事件中编写打开主窗口的脚本。 
  PFC编程过程中的函数使用方法 
  几乎所有的PFC函数都是对象级函数。这就意味着你必须定义POWERBUILDER对象后才可以使用函数。经过PB封装后的函数使你很轻易的看到哪个函数属于哪个对象。 
  PFC使用Set/Get/Is 命名规则来控制实例变量。 
  l_ of_Set函数允许你为实例变量赋值 
  l_ of_Get函数允许你获得一个非布尔类型的变量的值 
  l_ of_Is函数允许你确定一个布尔类型变量的真与假 
  其他类型实例变量的访问规则 
  PFC定义变量时同时指定为公共类型(public),那么你将可以随意直接访问。 
  另外,有些变量由于只是在内部使用,因此不能通过函数进行访问。 
  除了Set/Get/Is命名规则以外,PFC在为某一Service定义入口参数时使用Regist er/UnRegister规则。例如,你可以调用u_calculator对象的of_Register函数来定义Datawindow的那个列使用下拉日历。| String ls_sheet 
w_sheet lw_sheet 
ls_sheet = Message.StringParm 
OpenSheet(lw_sheet, ls_sheet, this, 0, Layered!) | 
 | Object qualificationPFC uses access levels (public, private, protected 
) to control your access to functions designed for 内部自动调用 use. 
When you call these functions from outside the object, use dot notatio 
n to qualify the function name. Qualify the function name with the ref 
erence variable used to create the object (in some cases you qualify t 
he function name with the actual object name). | 
 |