网站首页

家园论坛

老版论坛

家园博客

业界新闻

技术文档

下载中心

速查中心

图片中心

硬件资讯
上一篇:PowerBuilder传奇 下一篇:PB中TreeView控件的深度优化搜索算法程序
PB中如何将可视控件放置于别的控件上

来源:本站原创 作者: 添加日期:2005-9-4 19:19:56 点击次数:


具体实现方法如下:
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

 
设为首页 | 加入收藏 | 业务办理 | 友情链接 | 论坛版面 | 浙ICP备07502118号 |