Chinaunix首页 | 论坛 | 博客
  • 博客访问: 71494
  • 博文数量: 20
  • 博客积分: 2126
  • 博客等级: 大尉
  • 技术积分: 345
  • 用 户 组: 普通用户
  • 注册时间: 2007-04-17 15:51
文章分类

全部博文(20)

文章存档

2013年(1)

2012年(3)

2011年(2)

2010年(6)

2009年(7)

2008年(1)

我的朋友

分类: Windows平台

2013-08-17 17:18:39

标题不够具体,详细点说就是:程序运行的时候主窗体是隐藏的,只有一个工具栏图标,通过全局热键的响应,弹出一个副窗体,我希望这个窗体在显示的时候是最前端的(顶端显示 OnTop),并且是当前窗口,方便我使用键盘输入内容。所以需求很简单,顶端,获得焦点,看上去很容易实现,却想不到折腾了很久!
  按常规的做法,设置 StayOnTop,ShowModal,SetFoucs,都试过了,虽然显示在最前面,但这个窗口始终没有获得焦点,在OnShow加代码,加Timer,重载CreateParams,通通不行。这么简单的要求都做不到,Windows实在让人很晕啊。
  最后无意之间在百度中找一个API,终于实现了这个目的,实在得来全不费工夫啊。Windows的问题还是靠Windows解决啊。
  废话讲完了,这个API就是SwitchToThisWindow。

   函数功能
  该函数将焦点切换指定的窗口,并将其带到前台。
  函数原型: VOID SwitchToThisWindow(HWND hWnd, BOOL fAltTab)

  用法:


点击(此处)折叠或打开

  1.   procedure SwitchToThisWindow(hWnd:Thandle;fAltTab:boolean);stdcall;external 'User32.dll';

  2.   SwitchToThisWindow(frm2.Handle, True);









阅读(741) | 评论(0) | 转发(0) |
0

上一篇:RzPanel, RzToolbar使用渐变色的问题

下一篇:没有了

给主人留下些什么吧!~~