您的位置:首页 > 其它

【Demo 0035】获取窗体状态

2011-08-26 23:09 218 查看
本章学习内容非常少就一个API(GetWindowPlacement)

1. 代码演示

//////////////////////////////////////////////////////////////////////////
BOOL CALLBACK WndEnumProc(HWND hWnd, LPARAM lParam)
{
    HWND hListbox = (HWND)lParam;
    if (NULL == hWnd)    return FALSE;

    if (NULL != hListbox && IsWindow(hListbox) && IsWindowVisible(hWnd))
    {
        TCHAR szWndInfo[512]    = {0};
        TCHAR szWndTitle[256]    = {0};
        TCHAR szClsName[64]        = {0};
        WINDOWPLACEMENT wp        = {0};
        wp.flags                = 0;
        wp.length                = sizeof(wp);

        RECT rtWnd, rtClient;
        GetWindowRect(hWnd, &rtWnd);
        GetClientRect(hWnd, &rtClient);
        GetWindowText(hWnd, szWndTitle, 256);
        GetClassName(hWnd, szClsName, 64);
        GetWindowPlacement(hWnd, &wp);
        _stprintf(szWndInfo,
                  _T("\"%s\"")
                  _T("  %d ")
                  _T("wnd[%d,%d,%d,%d], client[%d,%d,%d,%d], normal[%d,%d,%d,%d] min[%d, %d] max[%d, %d]"),
                  szWndTitle,
                  wp.showCmd,
                  rtWnd.left, rtWnd.top, rtWnd.right, rtWnd.bottom,
                  rtClient.left, rtClient.top, rtClient.right, rtClient.bottom,
                  wp.rcNormalPosition.left, wp.rcNormalPosition.top, wp.rcNormalPosition.right, wp.rcNormalPosition.bottom,
                  wp.ptMinPosition.x, wp.ptMinPosition.y,
                  wp.ptMaxPosition.x, wp.ptMaxPosition.y);
        SendMessage(hListbox, LB_ADDSTRING, 0, (LPARAM)szWndInfo);
    }

    return TRUE;
} 2.  BOOL GetWindowPlacement(HWND hWnd, WINDOWPLACEMENT *lpwndpl )

     功能: 该函数返回指定窗口的显示状态以及被恢复的、最大化的和最小化的窗口位置

typedef struct _WINDOWPLACEMENT {
UINT length;
UINT flags;
UINT showCmd;
POINT ptMinPosition;
POINT ptMaxPosition;
RECT rcNormalPosition;
} WINDOWPLACEMENT;


返回值说明:


showCmd – 直接COPY MSDN


        SW_HIDE

Hides the window and activates another window.   SW_MAXIMIZEMaximizes the specified window.   SW_MINIMIZEMinimizes the specified window and activates the next top-level window in the z-order.   SW_RESTOREActivates and displays the window. If the window is minimized or maximized, the system restores it to its original size and position.An application should specify this flag when restoring a minimized window.   SW_SHOWActivates the window and displays it in its current size and position.   SW_SHOWMAXIMIZEDActivates the window and displays it as a maximized window.   SW_SHOWMINIMIZEDActivates the window and displays it as a minimized window.   SW_SHOWMINNOACTIVEDisplays the window as a minimized window.
             This value is similar to SW_SHOWMINIMIZED, except the window is not activated.

  SW_SHOWNADisplays the window in its current size and position.                This value is similar to SW_SHOW, except the window is not activated.

  SW_SHOWNOACTIVATEDisplays a window in its most recent size and position.
              This value is similar to SW_SHOWNORMAL, except the window is not actived.

  SW_SHOWNORMAL 演示代码
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: