Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*==========================================================================
* * Copyright (C) 1999 Microsoft Corporation. All Rights Reserved. * * File: peakmetr.h * Content: Implements a peak meter custom control * * History: * Date By Reason * ==== == ====== * 09/22/99 pnewson Created ***************************************************************************/
#ifndef _PEAKMETR_H_
#define _PEAKMETR_H_
// How to use this custom control
//
// In your code:
// 1) Include peakmetr.h in your project
// 2) Create an instance of the CPeakMeterWndClass class
// 3) Call Register() on that instance to register the window class
// 4) Send the control PM_SETMAX, PM_SETMIN, PM_SETCUR, PM_SETSTEPS
// messages as required.
// 5) When you are no longer using the control, call unregister
// 6) Destroy the CPeakMeterWndClass object
//
// In the dialog editor
// 1) Add a "Custom Control" to your dialog box
// 2) In the properties for that custom control, specify
// "DirectPlayVoicePeakMeter" for the window class
// Peak Meter windows messages:
//
// PM_SETMIN
// wParam = 0;
// lParam = (LPARAM)dwNewMinValue;
//
// Set the new minimum value for the peak meter, i.e. the
// value that represents the bottom of the meter range.
// If this message is not sent, the control defaults to 0.
// The message returns an HRESULT
//
// PM_SETMAX
// wParam = 0;
// lParam = (LPARAM)dwNewMaxValue;
//
// Set the new maximum value for the peak meter, i.e. the
// value that represents the top of the meter range.
// If this message is not sent, the control defaults to 0xffffffff.
// The message returns an HRESULT
//
// PM_SETCUR
// wParam = 0;
// lParam = (LPARAM)dwNewCurValue;
//
// Set the new current value for the peak meter, i.e. the
// value tells the meter where in it's range it should be.
// If this message is not sent, the control defaults to 0.
//
// Sending this message causes the control to call InvalidateRgn
// on its window, but does not call UpdateWindow. This allows
// the caller to be lazy or quick about actually redrawing
// the peak meter.
// The message returns an HRESULT
//
// PM_SETSTEPS
// wParam = 0;
// lParam = (LPARAM)dwNewMaxValue;
//
// Suggest to the peak meter the number of bars it should
// display. The bars have a minimum size, so depending on
// the size of the control, the peak meter may not be able
// to honor the request.
// If this message is not sent, the control defaults to 20
// The message returns an HRESULT
#define PM_SETMAX WM_USER + 1
#define PM_SETMIN WM_USER + 2
#define PM_SETCUR WM_USER + 3
#define PM_SETSTEPS WM_USER + 4
class CPeakMeterWndClass { private: HINSTANCE m_hinst;
public: HRESULT Register(); HRESULT Unregister(); };
#endif
|