|
|
//
// Microsoft Windows Media Technologies
// Copyright (C) Microsoft Corporation, 1999 - 2001. All rights reserved.
//
//
// This workspace contains two projects -
// 1. ProgHelp which implements the Progress Interface
// 2. The Sample application WmdmApp.
//
// ProgHelp.dll needs to be registered first for the SampleApp to run.
// Includes
//
#include "appPCH.h"
/////////////////////////////////////////////////////////////////////
//
// Function implementations
//
CStatus::CStatus (void ) { m_hwndStatusBar = NULL; }
CStatus::~CStatus (void ) { m_hwndStatusBar = NULL; }
HWND CStatus::GetHwnd( void ) { return m_hwndStatusBar; }
BOOL CStatus::Create( HWND hwndParent ) { BOOL fRet = FALSE;
// Create the statusbar window
//
m_hwndStatusBar = CreateWindow( STATUSCLASSNAME, "", WS_CHILD | WS_CLIPSIBLINGS | WS_VISIBLE, 0, 0, 0, 0, hwndParent, NULL, g_hInst, NULL ); ExitOnNull( m_hwndStatusBar );
// Show the window
//
ShowWindow( m_hwndStatusBar, SW_SHOW );
fRet = TRUE;
lExit:
return fRet; }
VOID CStatus::OnSize( LPRECT prcMain ) { INT anWidth[SB_NUM_PANES]; DWORD dwW = prcMain->right - prcMain->left; RECT rcMain; RECT rcDevice;
GetWindowRect( g_hwndMain, &rcMain ); GetWindowRect( g_cDevices.GetHwnd(), &rcDevice );
anWidth[0] = (INT) ( rcDevice.right - rcMain.left -7 ); anWidth[1] = anWidth[0] + (INT) ( dwW - anWidth[0] ) / 3; anWidth[2] = anWidth[1] + (INT) ( dwW - anWidth[0] ) / 3; anWidth[3] = -1;
SendMessage( m_hwndStatusBar, SB_SETPARTS, (WPARAM)SB_NUM_PANES, (LPARAM)anWidth ); SendMessage( m_hwndStatusBar, WM_SIZE, (WPARAM)0, (LPARAM)0 );
SetWindowPos( m_hwndStatusBar, HWND_TOP, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE ); }
VOID CStatus::SetTextSz( INT nPane, LPSTR lpsz ) { WPARAM wParam = (WPARAM) (nPane | 0L); LPARAM lParam = (LPARAM) lpsz;
if( m_hwndStatusBar ) { SendMessage( m_hwndStatusBar, SB_SETTEXT, wParam, lParam ); } }
VOID CStatus::SetTextFormatted( INT nPane, UINT uStrID, INT nData, LPSTR pszData ) { char szFormat[MAX_PATH];
if( 0 == uStrID ) { uStrID = IDS_STATUS_EMPTY; // use default
}
LoadString( g_hInst, uStrID, szFormat, sizeof(szFormat) );
if( -1 == nData && NULL == pszData ) { g_cStatus.SetTextSz( nPane, szFormat ); } else { CHAR sz[MAX_PATH]; HRESULT hr; if( -1 == nData ) { hr = StringCbPrintf( sz, sizeof(sz), szFormat, pszData ); } else { hr = StringCbPrintf( sz, sizeof(sz), szFormat, nData ); }
if (SUCCEEDED(hr)) { g_cStatus.SetTextSz( nPane, sz ); } } }
|