win api 窗口操作-窗口置顶与寻找与激活

setWindowPos函数把窗口的显示层次修改为HWND—TOPMOST,就可使指定窗口永远不会被其它窗口覆盖,该函数声明为:
  Function Long SetWindowPos(Long hwnd,Long ord,Long x,Long y,Long dx,Long dy,Long uflag) Library ″user32″
  参数1为要顶层显示的窗口句柄,参数2指定显示的层次,参数7为附加选项,其余参数指定窗口位置和大小,均可忽略。在窗口的Open或Activate事件中加入如下函数调用:
  SetWindowPos(Handle(This),-1,0,0,0,0,3)
  参数2取-1表示在最顶层显示窗口,取1表示在最底层显示;最后一个参数若取1,表示窗口大小保持不变,取2表示保持位置不变,因此,取3(=1+2)表示大小和位置均保持不变,取0表示将窗口的大小和位置改变为指定值。
   此外可以通过FindWindow寻找窗口
          SetForegroundWindow()可以用来将其他线程创建的窗口送到前台并将其激活,获得用户的交互事件

时间: 2024-09-21 13:12:30

win api 窗口操作-窗口置顶与寻找与激活的相关文章

窗口置顶 覆盖任务栏-如何将自己创建的窗口永久的置顶在任务栏之上?

问题描述 如何将自己创建的窗口永久的置顶在任务栏之上? 我想用自己的窗口挡住一半的桌面,但我置顶了窗口之后单击任务栏时任务栏跑到了 我的窗口的上面,如何能让我的窗口一直处在任务栏的上面呢?有没有大神能帮我解决? 解决方案 设置topmost属性.同时设置窗口父窗口为桌面. 解决方案二: C#用this.TopMost = true Delphi类似 VB.C++用API SetWindowPos,传递SWP_TOPMOST

wpf当有未关闭的窗口时,点击主窗体其他地方,将未关闭的窗口弹出置顶显示

问题描述 当有未关闭的窗口时,点击主窗体其他地方时,未关闭的窗口弹出置顶显示将弹出窗口置于应用界面的上部,避免隐藏起来 解决方案 解决方案二:你ShowDialog不就完了么.解决方案三:引用1楼wyd1520的回复: 你ShowDialog不就完了么. 如果你点击显示桌面后,然后在任务栏中点击主窗体,这时只显示主窗体解决方案四:子窗体.show();设置子窗体top=0:解决方案五:遍历Application.Current.Windows集合,判断是子窗体,然后让其处于活动状态.解决方案六:

Android仿QQ左滑删除置顶ListView操作_Android

最近闲来无事,于是研究了一下qq的左滑删除效果,尝试着实现了一下,先上效果图: 大致思路原理: - 通过设置margin实现菜单的显示与隐藏 - 监听onTouchEvent,处理滑动事件 上代码 import android.content.Context; import android.util.AttributeSet; import android.util.DisplayMetrics; import android.view.MotionEvent; import android.v

Android仿QQ左滑删除置顶ListView操作

最近闲来无事,于是研究了一下qq的左滑删除效果,尝试着实现了一下,先上效果图: 大致思路原理: - 通过设置margin实现菜单的显示与隐藏 - 监听onTouchEvent,处理滑动事件 上代码 import android.content.Context; import android.util.AttributeSet; import android.util.DisplayMetrics; import android.view.MotionEvent; import android.v

VC关于置顶窗口的方法小结

将窗体置顶的方法有: //将窗体置顶的API函数 ::SetWindowPos(m_hWndTop,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE); //MFC pDlg->SetWindowPos(&CWnd::wndTopMost,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE); 说明:&CWnd::wndTopMost 是当前的最顶层窗口,调用函数,会把m_hWndTop或pDlg 置于&CWnd::wndTopMo

C#SetWindowPos窗口置顶

 [DllImport("user32.dll", CharSet = CharSet.Auto)] private static extern int SetWindowPos(IntPtr hWnd, int hWndInsertAfter, int x, int y, int Width, int Height, int flags); /// <summary> /// 得到当前活动的窗口 /// </summary> /// <returns&g

C# SetWindowPos窗口置顶使用说明_实用技巧

复制代码 代码如下: [DllImport("user32.dll", CharSet = CharSet.Auto)] private static extern int SetWindowPos(IntPtr hWnd, int hWndInsertAfter, int x, int y, int Width, int Height, int flags); /// <summary> /// 得到当前活动的窗口 /// </summary> /// <

C语言控制台窗口图形界面编程之二 用于控制台窗口操作的API函数

下面介绍几个用于控制台窗口操作的API函数,如下: //获取控制台窗口信息 GetConsoleScreenBufferInfo(); //获取控制台窗口标题 GetConsoleTitle(); //更改指定缓冲区大小 SetConsoleScreenBufferSize(); //设置控制台窗口标题 SetConsoleTitle(); //设置控制台窗口信息 SetConsoleWindowInfo(); 下面的示例程序用于说明此类函数的使用: #include <stdio.h> #i

vc++-win7下置顶窗口,为什么经常失效?如何解决 ?

问题描述 win7下置顶窗口,为什么经常失效?如何解决 ? win7下使用SetWindowPos(&wndTopMost,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE)置顶窗口,为什么经常失效?如何解决 ?xp下没这个问题. 解决方案 失效,是不是窗口置顶被其它程序抢占了改了.还有可以用桌面窗口做父窗口,设置悬浮窗类似方式. 解决方案二: 我也怀疑是这样,就是不知道xp为什么不会被抢,win7就会,是不是win7有什么特定的设置 解决方案三: 这是uiAccess搞的鬼,w7还是