导航
  • 主页
  • API 调用
  • 基础类
  • 控件与界面
  • 数据库相关
  • DataWindow
  • 项目管理
  • Web 应用
  • 脚本语言

请教关于PB程序焦点问题!

华之乐章 信息主管  2007-12-26 05:17:30
我做了个软件,涉及到CAD的二次开发,通过OLE对象打开CAD,此时CAD是前台进程,并提取到了相关参数。我想将PB程序再转换到前台(即PB程序窗口置与CAD前面,也相当出发PB程序焦点)。我通过BringToTop(W_text) 以及 窗口控件的
SETFOCUS()函数也不能实现。不知道PB有没有相关环境函数,希望高手指教。
...全文
207 点赞 收藏 8
写回复
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_1919561306 2012-07-11
源码放上来吧,共享一下。
我也遇到这个难题了。
谢谢
回复
华之乐章 2007-12-28
结合SetPosition(TopMost!) 和 SetPosition(NoTopMost!) 总算实现效果,十分感谢!
回复
leio 2007-12-27
上面那些API你要是觉得还不够用,那么再试试这个吧
FUNCTION ulong SetForegroundWindow(ulong hwnd) LIBRARY "user32.dll"

或者你也可以把几个API都调用一遍,呵呵,肯定可以的,我用过。

ShowWindow( ul_handle, 9 )
setactivewindow(ul_handle)
BringWindowToTop(ul_handle)
SetForegroundWindow(ul_handle)
回复
华之乐章 2007-12-27
上面的函数,我也用过了,不过还是窗口还是显示不出来。
有没有PB 对CAD二次开发经验的高手。
我想换个途径,控制CAD窗口最小化。
回复
AFIC 2007-12-27
1先确保你的代码确实被执行了
2pb自带的函数W_text.SetPosition(TopMost!)就可以
回复
华之乐章 2007-12-27
效果出来了一点,但是还是窗口没弹出。谢谢老大了。
回复
leio 2007-12-26
Function uLong ShowWindow( ulong winhandle, int wincommand ) Library "user32"

//ShowWindow()函数
//
//说明: 控制窗口的可见性。
//返回值: ulong,如窗口之前是可见的,则返回TRUE(非零),否则返回FALSE(零)。
//参数 类型及说明
//winhandle ulong,窗口句柄,要向这个窗口应用由wincommand指定的命令。
//wincommand integer,为窗口指定可视性方面的一个命令。请用下述任何一个常数
//0 隐藏窗口,活动状态给另一个窗口。
//1 用原来的大小和位置显示一个窗口,同时令其进入活动状态。与9同。
//2 最小化窗口,并将其激活
//3 最大化窗口,并将其激活。
//4 用最近的大小和位置显示一个窗口,同时不改变活动窗口。
//5 用当前的大小和位置显示一个窗口,同时令其进入活动状态。
//6 最小化窗口,活动状态给令一个窗口。
//7 最小化一个窗口,同时不改变活动窗口。
//8 用当前的大小和位置显示一个窗口,不改变活动窗口。
//9 用原来的大小和位置显示一个窗口,同时令其进入活动状态。



另外还可以调如下API
FUNCTION ulong SetActiveWindow(ulong hwnd) LIBRARY "user32.dll"
FUNCTION ulong BringWindowToTop(ulong hwnd) LIBRARY "user32.dll"
回复
华之乐章 2007-12-26
自己抢个沙发,顶起来先。
回复
发动态
发帖子
PowerBuilder
创建于2007-09-28

809

社区成员

PowerBuilder 相关问题讨论
申请成为版主
社区公告
暂无公告