`
阿尔萨斯
  • 浏览: 4170307 次
社区版块
存档分类
最新评论

Windows API一日一练(38)SetWindowPos函数

 
阅读更多
<iframe align="center" marginwidth="0" marginheight="0" src="http://www.zealware.com/csdnblog.html" frameborder="0" width="728" scrolling="no" height="90"></iframe>
有一天,用户突然对我说,你这个窗口能不能放到最顶端,这样操作和打开文件就很不方便了。这个功能就需要改变窗口的属性了。比如大家使用QQ时,就有一个功能,设置QQ的窗口在最顶端,不管你选择了什么窗口,QQ的界面永远都在最前面。又像FlashGet的状态查看窗口,一直保持在窗口的最前端,让你看到当前下载的流量程况。现在股票那么火爆,很多人一边工作,一边查看股票,如果错失了机会,又少了很多钱的啊!面对这样的需求,就需要把一些窗口永远摆在最前面,这样起到提示用户的作用。因此,学会使用SetWindowPos函数,就成为能否让软件满足客户需求的关键了。与MoveWindow函数相比,SetWindowPos函数的功能比较强大一点。
函数SetWindowPos声明如下:
WINUSERAPI
BOOL
WINAPI
SetWindowPos(
__in HWND hWnd,
__in_opt HWND hWndInsertAfter,
__in int X,
__in int Y,
__in int cx,
__in int cy,
__in UINT uFlags);
hWnd是窗口的句柄。
hWndInsertAfter是窗口Z顺序属性。
X是窗口在X轴的位置。
Y是窗口在Y辆的位置。
cx是窗口的宽度。
cy是窗口的高度。
uFlags是选择设置的标志。
调用这个函数的例子如下:
#001//
#002//响应命令.
#003//蔡军生2007/09/16 QQ:9073204
#004//
#005LRESULTCCaiWinMsg::OnCommand(int nID,int nEvent)
#006{
#007// 菜单选项命令响应:
#008switch (nID)
#009{
#010case IDC_CREATEBTN:
#011 //显示一个按钮。
#012 if (!m_hBtn)
#013 {
#014 m_hBtn = CreateWindow(_T("BUTTON"),_T("按钮"),
#015 WS_VISIBLE|WS_CHILD|BS_PUSHBUTTON,
#016 50,50,100,32,
#017 m_hWnd,(HMENU)IDC_BTN,m_hInstance,NULL);
#018 }
#019 break;
#020case IDC_BTN:
#021 OutputDebugString(_T("按钮按下/r/n"));
#022 {
#023 static bool bChangeText = true;
#024 if (bChangeText)
#025 {
#026 //设置按钮的文字。
#027 SetWindowText(m_hBtn,_T("改变它"));
#028
#029 //改变按钮窗口的位置和大小。
#030 MoveWindow(m_hBtn,10,10,100,32,TRUE);
#031
#032 //改变主窗口为最顶端窗口。
#033 SetWindowPos(m_hWnd,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);
#034 }
#035 else
#036 {
#037 //设置按钮的文字。
#038 SetWindowText(m_hBtn,_T("按钮"));
#039
#040 //改变按钮窗口的位置和大小。
#041 MoveWindow(m_hBtn,50,50,100,32,TRUE);
#042
#043 //改变主窗口为普通窗口。
#044 SetWindowPos(m_hWnd,HWND_NOTOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);
#045 }
#046
#047 //每一次都改变。
#048 bChangeText = !bChangeText;
#049 }
#050 break;
#051default:
#052 return CCaiWin::OnCommand(nID,nEvent);
#053}
#054
#055return 1;
#056}



分享到:
评论

相关推荐

    SetWindowPos函数的具体用法

    这个函数能为窗口指定一个新位置和状态。它也可改变窗口在内部窗口列表中的位置。该函数与DeferWindowPos函数相似,只是它的作用是立即表现出来的。

    函数SetWindowPos

    SetWindowPos函数的应用以及详细解说,参数的设置等等

    API之网络函数---整理网络函数及功能

    CreateScalableFontResource 为一种TureType字体创建一个资源文件,以便能用API函数AddFontResource将其加入Windows系统 DrawText 将文本描绘到指定的矩形中 DrawTextEx 与DrawText相似,只是加入了更多的功能 ...

    VB编程资源大全(源码 API)

    通过Windows API函数SendMessage发送消息使List Box中的每一个Item有不同的Tooltip(2KB) 7,TextBox.ZIP 另外一个通过Windows API函数SendMessage发送消息的范例,这个范例改变文本框的只读属性(2KB) 8,FILEVER....

    易语言api窗口函数的具体应用

    易语言api窗口函数的具体应用源码,WindowFromPoint,FindWindow,FindWindowEx,newparnet,GetParent,SetWindowPos,movewindow,SetCaretPos,getclassname,getwindowtext

    setwindowpos vb2005

    api setwindowpos函数在vb2005中的演示,给你一个小小的帮助。

    API函数和PB编程

     通过SetWindowPos函数吧窗口的显示层次修改为HWND_TOPMOST,就可以使指定窗口永远不会被其他窗口覆盖,该函数声明为:  Function Long SetWindowPos(Long hwnd, Long ord, Long x, Long y, Long dx, Long dy, ...

    最前端显示SetWindowPos.docx

    最前端显示SetWindowPos.docx

    孙新老师关于移动按钮的示范程序含SetWindowPos实现方式

    孙鑫老师没做用SetWindowPos做。我实验了一哈,还行。

    VB模拟鼠标的方法 SetWindowPos GetCursorPos SetCursorPos 源码

    VB模拟鼠标的方法 SetWindowPos GetCursorPos SetCursorPos

    易语言自适应尺寸的输入框

    易语言自适应尺寸的输入框源码,自适应尺寸的输入框,WinProc,API_GetCurrentThreadId,API_GetWindowLong,API_GetWindowRect,API_SetWindowPos,API_SetWindowsHookEx,API_UnhookWindowsHookEx,API_GetWindow,API_...

    Win32API_LookIn2.zip

    近日找到个不错的界面API演示软件, 平时像SetWindowPos,UpdateLayeredWindow,EnumWindows这些光看MSDN还真不能完全理解, 想自己写测试下, 这个前奏又太麻烦, 为测试一个API, 写个好几百行的环境代码真不值. ...

    VB实现定时监控录像程序.rar

    SetWindowPos函数为窗口指定个个新位置和状态。它也可改变窗口在内部窗口列表中的位置,调用一个窗口的窗口函数,将一条消息发给那个窗口。直到消息被处理完毕,该函数才会返回  'hwnd(long)要接收消息的那个窗口...

    最上层显示窗体 setwindowpos

    vc程序,实现最上层显示窗体 setwindowpos 始终前面 最前面显示窗体 c++

    VC++开发一个资源编辑器

    5.修改控件的大小位置,使用setwindowpos函数 6.判断2个矩形是否相交,用IntersectRect函数,可以控件是否在选择框中 7.画选择框:使用DrawFocusRect函数,清除选择框,指定SetROP2(hdc, R2_NOT); ——————...

    C语言程序设计 windows Tab控件的常用方法,练习小作品

    问题是如何将某个子窗口置顶显示,而不是才用隐藏的方法,原本就以为只要使用setwindowpos函数就能搞定的, 可是就是不行,经过半天的百度,千度,都没好方法, 真是一个麻烦的事情,总是是解决,也说明了网上的那些...

    最前端显示SetWindowPos.pdf

    最前端显示SetWindowPos.pdf

    MoveWindow() SetWindowPos()的区别于联系

    敲代码时,突然发现有一个背景图片无法显示,百思不得其解,最终发现是MoveWindow() SetWindowPos()这两个函数的使用不当造成的。  这里把这两个函数的前世今生给分析一下。  先看MoveWindow()函数,用于改变窗口...

    基于WIN api 的窗口及按钮控制实例

    WinMain WM_NCCALCSIZE WM_GETMINMAXINFO WM_NCHITTEST WM_DESTROY SetWindowPos 纯API自绘按钮

    WinShow.rar_SetWindowPos_百度

    有些程序不想让别人知道它在运行,显示出来看看运行情况或者隐藏起来,也可以实现置顶,具体参数自己百度一下SetWindowPos也许更好。

Global site tag (gtag.js) - Google Analytics