赞
踩
CRect类
数据成员有left,top,right,和bottom。
left左上角X坐标,top左上角Y坐标,right右下角X坐标,bottom右下角Y坐标。
rect.InflateRect(3,3);//修改CRect的宽和高,每次增加3,3
rect.OffsetRect(5,5);//修改CRect的x、y值,每次增加5,5
CWnd::SetTimer
功能:设置计时器
- UINT_PTR SetTimer(
- UINT_PTR nIDEvent,
- UINT nElapse,
- void(CALLBACK * lpfnTimer
- )(HWND,
- UINT,
- UINT_PTR,
- DWORD
- )
- );
参数nIDEvent指定一个非零的定时器ID;
参数nElapse指定间隔时间,单位为毫秒;
参数lpfnTimer指定一个回调函数的地址,如果该参数为NULL,则WM_TIMER消息被发送到应用程序的消息队列,并被CWnd对象处理。如果此函数成功则返回一个新的定时器的ID,我们可以使用此ID通过KillTimer成员函数来销毁该定时器,如果函数失败则返回0。
例如:
SetTimer(123,500,NULL);//ID为123,每隔500ms触发一次OnTimer
CWnd::KillTimer
功能:清除计时器
- BOOL KillTimer(
- UINT_PTR nIDEvent //计时器ID
- );
例如:
KillTimer(123);//关闭计时器123
CWnd::ShowWindow
功能:设定视窗的可视性状态。
- 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恢复它原来的大小和位置。 |
CWnd::EnableWindow
功能:激活或者禁用窗口
- BOOL EnableWindow(
- BOOL bEnable = TRUE
- );
参数bEnable为TRUE,启用。FALSE禁用。
例如:
- CWnd* pCanc = GetDlgItem(IDCANCEL);
- if(pCanc->IsWindowEnabled())//可用
- pCanc->EnableWindow(false);//禁用
- else
- pCanc->EnableWindow(true);//激活
CWnd::MoveWindow
作用:改变窗口的位置。如果是父窗口,则坐标系是基于屏幕。如果是子窗口,则坐标系是基于父窗口。
- void MoveWindow(
- int x,//左边的新坐标
- int y,//顶端的新坐标
- int nWidth,//宽度
- int nHeight,//高度
- BOOL bRepaint = TRUE //为TURE表示需要重新绘制。
- );
- void MoveWindow(
- LPCRECT lpRect,
- BOOL bRepaint = TRUE
- );
CWnd::CenterWindow
作用:相对于父窗口居中。
- void CenterWindow(
- CWnd * pAlternateOwner = NULL //指向居中窗口的指针。(父窗口除外)
- );
CWnd::SetWindowPos
作用:更改窗口的x,y,z轴的位置。
- BOOL SetWindowPos(
- const CWnd* pWndInsertAfter,
- int x,//指定窗口的左侧的新位置。
- int y,//指定窗口顶部的新位置。
- int cx,//指定窗口的新的宽度
- int cy,//指定窗口的新高度
- UINT nFlags
- );
pWndInsertAfter为以下几个参数:
wndBottom 将窗口底部的z-顺序。 如果此 CWnd 是一个最顶层窗口,窗口丢失其最顶层的状态;系统将窗口在其他窗口底部。
wndTop 将窗口在z-顺序的顶部。
wndTopMost 将windows首先非最顶层窗口。 即使当停用,窗口保留其最顶层的位置它。
wndNoTopMost 在任何非最顶层窗口的顶部重新定位窗口(即所有最顶层窗口)后。 如果窗口已非最顶层窗口,此标志将不起作用。
nFlags可以为以下参数的组合:
SWP_DRAWFRAME 在窗口周围绘制帧(定义窗口时所创建的)。
SWP_FRAMECHANGED 发送 WM_NCCALCSIZE 信息到窗口,因此,即使未更改窗口的大小。 如果此标志未指定,则发送 WM_NCCALCSIZE,仅当更改时窗口的大小。
SWP_HIDEWINDOW 隐藏窗口。
SWP_NOACTIVATE 不窗口被激活。 如果此未设置任何标志,窗口激活和移到最顶层或非最顶层的组顶级(基于设置 pWndInsertAfter 参数)。
SWP_NOCOPYBITS 放弃工作区的整个内容。 如果此标志未指定,工作区的有效内容保存并将其复制到工作区,在窗口的大小或重新定位之后。
SWP_NOMOVE 保留当前位置(忽略 x 和 y 参数)。
SWP_NOOWNERZORDER 不会更改。z-顺序的所有者窗口的位置。
SWP_NOREDRAW 不重绘更改。 如果此标志设置,重新绘制任何类型不会发生。 这适用于工作区、非工作区(包括标题和滚动条)和由于移动后的窗口中的父窗口的任何部分。 在此标志设置为时,应用程序必须显式无效或重绘必须重绘窗口和父窗口的所有部件。
SWP_NOREPOSITION 和 SWP_NOOWNERZORDER相同。
SWP_NOSENDCHANGING 防止窗口收到 WM_WINDOWPOSCHANGING 消息。
SWP_NOSIZE 保留当前范围(忽略 cx 和 cy 参数)。
SWP_NOZORDER 保留当前排序(忽略 pWndInsertAfter)。
SWP_SHOWWINDOW 显示窗口。
CWnd::BringWindowToTop
作用:将窗口带到重叠窗口的最顶层。
void BringWindowToTop( );
CWnd::IsWindowVisible
作用:判断窗口是否可见或被隐藏。
BOOL IsWindowVisible( ) const;
CWnd::IsWindowEnabled
作用:判断窗口是激活或者禁用状态。
BOOL IsWindowEnabled( ) const;
CWnd::IsIconic
作用:判断是否最小化
BOOL IsIconic( ) const;
CWnd::IsZoomed
作用:判断是否最大化
BOOL IsZoomed( ) const;
CWnd::GetWindowRect
作用:获取以屏幕坐标系为基础的窗口矩形区域。
- void GetWindowRect(
- LPRECT lpRect //用于接收窗口的位置信息。
- )const;
例如:
- CRect rect;
- m_edit.GetWindowRect(rect);//得到相对于当前屏幕的位置
CWnd::GetClientRect
作用:获取以对象关联的以其客户区为基础的客户区矩形区域。(left和top必然是0)
- void GetClientRect(
- LPRECT lpRect
- ) const;
CWnd::GetTopWindow
作用:获取当前父窗口内所有子窗口中最底(top)的子窗口。
CWnd* GetTopWindow( ) const;
CWnd::GetForegroundWindow
作用:获取任务栏内目前正在前台的一个主窗口。
static CWnd* PASCAL GetForegroundWindow( );
CWnd::GetActiveWindow
作用:在同一进程内所有窗口中处于激活状态的窗口。
static CWnd* PASCAL GetActiveWindow( );
CWnd::Invalidate
作用:使整个窗口客户区无效
- void Invalidate(
- BOOL bErase = TRUE //参数bErase为TRUE时,重绘区域内的背景将被擦除,否则,背景将保持不变。
- );
CWnd::InvalidateRect
作用:使指定客户区无效,窗口的客户区无效意味着需要重绘
- void InvalidateRect(
- LPCRECT lpRect,
- BOOL bErase = TRUE
- );
CWnd::UpdateWindow
作用:使整个窗口客户区无效
与Invalidate区别:UpdateWindow( )的作用是使窗口立即重绘。调用Invalidate等函数后窗口不会立即重绘,这是由于WM_PAINT消息的优先级很低,它需要等消息队列中的其它消息发送完后才能被处理。调用UpdateWindow函数可使WM_PAINT被直接发送到目标窗口,从而导致窗口立即重绘。
CWnd::ClientToScreen
作用:客户区坐标转换为屏幕区坐标
- void ClientToScreen(
- LPPOINT lpPoint
- ) const;
- void ClientToScreen(
- LPRECT lpRect
- ) const;
CWnd::ScreenToClient
作用:屏幕区坐标转换为客户区坐标
- void ScreenToClient(
- LPPOINT lpPoint
- ) const;
- void ScreenToClient(
- LPRECT lpRect
- ) const;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。