设为首页 加入收藏

TOP

VC++ 如何使窗体最大化或是最小化(一)
2017-10-11 17:34:34 】 浏览:8201
Tags:如何 窗体 最大化 或是 最小化

最大化最小的使得的函数是 ShowWindow函数

 ShowWindow(SW_SHOWMINIMIZED);//最小化
 ShowWindow(SW_SHOWMAXIMIZED);//最大化
 ShowWindow(SW_RESTORE);//还原

 -------
 PostMessage(hwnd,WM_SYSCOMMAND,SC_MINIMIZE,0);
 SC_MAXIMIZE为最大化。

使用方法:

BOOL ShowWindow(    int nCmdShow  );

参数  
nCmdShow  
指定 CWnd 将如何显示。  它必须是下列值之一: 
? SW_HIDE 隐藏该窗口并通过启动到另一个窗口。  
? SW_MINIMIZE 最小化窗口并激活在系统的顶级窗口列表。  
? SW_RESTORE 激活并显示窗口。  如果窗口处于最小化或最大化,Windows还原为其原始大小和位置。 
? SW_SHOW 激活窗口并显示在其当前大小和位置。  
? SW_SHOWMAXIMIZED 激活窗口并将其显示为最大化窗口的大小。  
? SW_SHOWMINIMIZED 激活窗口并将其显示为图标。  
? SW_SHOWMINNOACTIVE 显示窗口作为图标。  当前活动的窗口保持有效。 
? SW_SHOWNA 显示在其当前状态的窗口。  当前活动的窗口保持有效。 
? SW_SHOWNOACTIVATE 显示在其最近大小和位置的窗口。  当前活动的窗口保持有效。
? SW_SHOWNORMAL 激活并显示窗口。  如果窗口处于最小化或最大化,Windows还原为其原始大小和位置。 
返回值 非零,则窗口先前是可见的,
0,如果 CWnd 以前是隐藏的。

 

也可使用消息的方法来解决:

PostMessage(hwnd,WM_SYSCOMMAND,SC_MAXIMIZE,0);

系统消息命令  SC_MAXIMIZE 最小化命令

hwnd是要操作的对象!

 

第一种方法:使用SetWindowPos函数
CWnd::SetWindowPos

BOOL   SetWindowPos(const   CWnd*   pWndInsertAfter,   int   x,   int   y,   int   cx,   int   cy,UINT   nFlags   );
  返回值如果函数成功,则返回非零值;否则返回0。

说明  
   
    调用这个成员函数以改变子窗口、弹出窗口和顶层窗口的大小、位置和Z轴次序。窗口在屏幕上按照它们的Z轴次序排序。在Z轴次序上处于顶端的窗口将程序在所有其它窗口的顶部。子窗口的所有坐标都是客户坐标(相对于父窗口客户区的左上角)。窗口可以被移动到Z轴次序的顶部,既可以通过将pWndInsertAfter参数设为&wndTopMost,并确保没有设置SWP_NOZORDER标志,也可以通过设置窗口的Z轴次序使它位于所有现存的顶层窗口上方。当一个非顶层窗口被设为顶层窗口时,它拥有的窗口也被设为顶层的。它的拥有者不发生变化。如果顶层窗口被重新定位到Z轴次序的底部(&wndBottom)或任何非顶层窗口之后,则它将不再是顶层窗口。当顶层窗口被变为非顶层窗口时,它所有的拥有者和它拥有的所有窗口都被变为非顶层窗口。如果既没有指定SWP_NOACTIVE标志也没有指定SWP_NOZORDER标志(这意味着应用程序要求窗口被同时激活并放入指定的Z轴次序),则pWndInsertAfter参数中指定的值将只在下列环境下适用:l   在pWndInsertAfter参数中既没有指定&wndTopMost也没有指定&wndNoTopMost。  
    这个窗口不是活动窗口。应用程序不能激活一个非活动窗口但同时又不把它带到Z轴次序的顶部。应用程序可以没有任何限制地改变活动窗口的Z轴次序。非顶层窗口可能拥有一个顶层窗口,但是反之则不成立。任何被顶层窗口拥有的窗口(例如对话框)都将自己变为顶层窗口,以确保所有被拥有的窗口位于它们的拥有者上方。在Windows   3.1或更新的版本中,可以将窗口移动到Z轴次序的顶部,并通过设置它们的WS_EX_TOPMOST风格而将之锁定在那里。这种顶层窗口即使在失去活动状态以后也会保持顶层位置。例如,选择WinHelp的Always   On   Top命令会使帮助窗口变为顶层,并且在你返回应用程序之后它还保持可见。要创建一个顶层窗口,应在调用SetWindowPos的时候将pWndInsertAfter参数设为&wndTopMost,或者在创建窗口的时候设置WS_EX_TOPMOST风格。如果Z轴次序中包含了任何具有WS_EX_TOPMOST风格的窗口,则用&wndTopMost移动的窗口将被放到所有非顶层窗口的顶部,但是位于任何顶层窗口的下面。当应用程序激活一个不具有WS_EX_TOPMOST风格的非活动窗口时,该窗口将被移动到所有非顶层窗口的上方,但是位于所有顶层窗口的下方。如果在调用SetWindowPos的时候pWndInsertAfter参数被设为&wndBottom,并且CWnd是一个顶层窗口,则该窗口失去顶层状态(WS_EX_BOTTOM风格被清除),并且系统将窗口放在Z轴次序的底部 。
   
  参数pWndInsertAfter  
  标识了在Z轴次序上位于这个CWnd对象之前的CWnd对象。这个参数可以是指向CWnd对象的指针,也可以是指向下列值的指针:  
    wndBottom       将窗口放在Z轴次序的底部。如果这个CWnd是一个顶层窗口,则窗口将失去它的顶层状态;系统将这个窗口放在其它所有窗口的底部。  
    wndTop       将窗口放在Z轴次序的顶部。  
    wndTopMost       将窗口放在所有非顶层窗口的上面。这个窗口将保持它的顶层位置,即使它失去了活动状态。  
    wndNoTopMost       将窗口重新定

首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇hdu 6171---Admiral(双向搜索) 下一篇DCMTK354之VC++ 2008 MFC应用程序..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目