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

华之乐章 2007-12-26 05:17:30
我做了个软件,涉及到CAD的二次开发,通过OLE对象打开CAD,此时CAD是前台进程,并提取到了相关参数。我想将PB程序再转换到前台(即PB程序窗口置与CAD前面,也相当出发PB程序焦点)。我通过BringToTop(W_text) 以及 窗口控件的
SETFOCUS()函数也不能实现。不知道PB有没有相关环境函数,希望高手指教。
...全文
400 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
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
  • 打赏
  • 举报
回复
自己抢个沙发,顶起来先。

1,076

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧