|
具体实现方法如下: 1、创建要用于放置在状态栏上的可视控件的用户对象,在本例中准备放一个进度条控件(ProgressBar); 2、获取窗口状态栏的句柄; //wf_getstatusbar(window awFrame): long ll_null,ll_hstatusbar string ls_classname,ls_windowname Environment lEnv if isvalid(awFrame) and (GetEnvironment(lEnv) = 1 then if (awFrame.WindowType = MDIHelp!) then choose case lEnv.PBMajorRevision case 5 ls_classname = PB5_StatusClass case 6 ls_classname = PB6_StatusClass case 7 ls_classname = PB7_StatusClass
case 8
ls_classname = PB8_StatusClass end choose setnull(ls_windowname) setnull(ll_null) //FindWindowExA是Windows API函数,必须首先声明 ll_hstatusbar = FindWindowExA(Handle(awFrame),ll_null,ls_classname,ls_windowname) end if end if
return ll_hstatusbar
3、利用SetParent函数将控件放在状态栏上。窗口的Instance变量: u_ProgressBar iuo_ProgressBar long il_hstatusbar 在窗口的Open事件中编写如下程序(窗口必须是MDIHelp类型) long ll_hstatusbar,ll_parts[] ll_hstatusbar = wf_getstatusbar(this) if (ll_hstatusbar > 0) then il_hstatusbar = ll_statusbar OpenUserObject(iuo_ProgressBar,0,8) if isvalid(iuo_ProgressBar) then //SetParent是Windows API函数,必须首先声明 SetParent(handle(iuo_ProgressBar),ll_hstatusbar) end if end if
|