java windows窗口最大化_Windows窗口操作函数

从VC提供的MFC类派生图中我们可以看出窗口的派生关系,派生图,所有的窗口类都是由CWnd派生。所有CWnd的成员函数在其派生类中都可以使用。本节介绍一些常用的功能给大家。

改变窗口状态:

BOOL EnableWindow( BOOL bEnable = TRUE );可以设置窗口的禁止/允许状态。BOOL IsWindowEnabled( );可以查询窗口的禁止/允许状态。

BOOL ModifyStyle( DWORD dwRemove, DWORD dwAdd, UINT nFlags = 0 )/BOOL ModifyStyleEx( DWORD dwRemove, DWORD dwAdd, UINT nFlags = 0 );可以修改窗口的风格,而不需要调用SetWindowLong

BOOL IsWindowVisible( ) 可以检查窗口是否被显示。

BOOL ShowWindow( int nCmdShow );将改变窗口的显示状态,nCmdShow可取如下值:SW_HIDE 隐藏窗口

SW_MINIMIZE SW_SHOWMAXIMIZED 最小化窗口

SW_RESTORE 恢复窗口

SW_SHOW 显示窗口

SW_SHOWMINIMIZED 最大化窗口

改变窗口位置:

void MoveWindow( LPCRECT lpRect, BOOL bRepaint = TRUE );可以移动窗口。

void GetWindowRect( LPRECT lpRect ) ;可以得到窗口的矩形位置。

BOOL IsIconic( ) ;可以检测窗口是否已经缩为图标。

BOOL SetWindowPos( const CWnd* pWndInsertAfter, int x, int y, int cx, int cy, UINT nFlags );可以改变窗口的Z次序,此外还可以移动窗口位置。

使窗口失效,印发重绘:

void Invalidate( BOOL bErase = TRUE );使整个窗口失效,bErase将决定窗口是否产生重绘。

void InvalidateRect( LPCRECT lpRect, BOOL bErase = TRUE )/void InvalidateRgn( CRgn* pRgn, BOOL bErase = TRUE );将使指定的矩形/多边形区域失效。

窗口查找:

static CWnd* PASCAL FindWindow( LPCTSTR lpszClassName, LPCTSTR lpszWindowName );可以以窗口的类名和窗口名查找窗口。任一参数设置为NULL表对该参数代表的数据进行任意匹配。如FindWindow("MyWnd",NULL)表明查找类名为MyWnd的所有窗口。

BOOL IsChild( const CWnd* pWnd ) 检测窗口是否为子窗口。

CWnd* GetParent( ) 得到父窗口指针。

CWnd* GetDlgItem( int nID ) 通过子窗口ID得到窗口指针。

int GetDlgCtrlID( ) 得到窗口ID值。

static CWnd* PASCAL WindowFromPoint( POINT point );将从屏幕上某点坐标得到包含该点的窗口指针。

static CWnd* PASCAL FromHandle( HWND hWnd );通过HWND构造一个CWnd*指针,但该指针在空闲时会被删除,所以不能保存供以后使用。

时钟:

UINT SetTimer( UINT nIDEvent, UINT nElapse, void (CALLBACK EXPORT* lpfnTimer)(HWND, UINT, UINT, DWORD) );可以创建一个时钟,如果lpfnTimer回调函数为NULL,窗口将会收到WM_TIMER消息,并可以在afx_msg void OnTimer( UINT nIDEvent );中安排处理代码

BOOL KillTimer( int nIDEvent );删除一个指定时钟。

可以利用重载来添加消息处理的虚函数:

afx_msg int OnCreate( LPCREATESTRUCT lpCreateStruct );窗口被创建时被调用

afx_msg void OnDestroy( );窗口被销毁时被调用

afx_msg void OnGetMinMaxInfo( MINMAXINFO FAR* lpMMI );需要得到窗口尺寸时被调用

afx_msg void OnSize( UINT nType, int cx, int cy );窗口改变大小后被调用

afx_msg void OnMove( int x, int y );窗口被移动后时被调用

afx_msg void OnPaint( );窗口需要重绘时时被调用,你可以填如绘图代码,对于视图类不需要重载OnPaint,所有绘图代码应该在OnDraw中进行

afx_msg void OnChar( UINT nChar, UINT nRepCnt, UINT nFlags );接收到字符输入时被调用

afx_msg void OnKeyDown/OnKeyUp( UINT nChar, UINT nRepCnt, UINT nFlags );键盘上键被按下/放开时被调用

afx_msg void OnLButtonDown/OnRButtonDown( UINT nFlags, CPoint point );鼠标左/右键按下时被调用

afx_msg void OnLButtonUp/OnRButtonUp( UINT nFlags, CPoint point );鼠标左/右键放开时被调用

afx_msg void OnLButtonDblClk/OnRButtonDblClk( UINT nFlags, CPoint point );鼠标左/右键双击时被调用

afx_msg void OnMouseMove( UINT nFlags, CPoint point );鼠标在窗口上移动时被调用

from: http://tech.china.com/zh_cn/netschool/programme/c/656/20001207/01_4e.html

表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
©️2020 CSDN 皮肤主题: 1024 设计师:白松林 返回首页