mirror of https://github.com/lianthony/NT4.0
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.
85 lines
2.7 KiB
85 lines
2.7 KiB
/*
|
|
* CSTATHLP.H
|
|
*
|
|
* Class and structure definitions for the CStatusHelper class
|
|
* that manages messages to display in the status bar.
|
|
*
|
|
* Copyright (c)1994 Microsoft Corporation, All Rights Reserved
|
|
*/
|
|
|
|
#ifndef _CSTATHLP_H_
|
|
#define _CSTATHLP_H_
|
|
|
|
|
|
//For loading the RCDATA mapping menu item IDs to string IDs
|
|
typedef struct tagSTATMESSAGEMAP
|
|
{
|
|
USHORT uID;
|
|
USHORT idsMsg;
|
|
} STATMESSAGEMAP, *PSTATMESSAGEMAP;
|
|
|
|
//Array mapping menu handles to menu item IDs
|
|
typedef struct tagPOPUPMENUMAP
|
|
{
|
|
HMENU hMenu;
|
|
USHORT uID;
|
|
} POPUPMENUMAP, *PPOPUPMENUMAP;
|
|
|
|
|
|
/*
|
|
* The CStatusHelper class simplifies run-time management of
|
|
* status bar messages by setting up a mapping between popup
|
|
* menu handles and item IDs to resource string IDs. The
|
|
* MenuSelect member processes any WM_MENUSELECT message
|
|
* automatically to display the appropriate message.
|
|
*/
|
|
|
|
class CStatusHelper
|
|
{
|
|
protected:
|
|
HWND m_hWnd; //hWnd of control
|
|
HINSTANCE m_hInst; //Module instance
|
|
BOOL m_fMapped; //MessageMap called?
|
|
PCStringTable m_pST; //Message strings
|
|
|
|
UINT m_uIDCur; //Current displayed ID.
|
|
|
|
HWND m_hWndOwner; //Frame window
|
|
USHORT m_cMessages; //Number of messages
|
|
UINT m_idsMin; //Lowest string ID
|
|
UINT m_idsMax; //Maximum string ID
|
|
|
|
USHORT m_uIDStatic; //Quiescent message ID
|
|
USHORT m_uIDBlank; //Blank message ID
|
|
USHORT m_uIDSysMenu; //System menu message ID
|
|
|
|
USHORT m_cPopups; //Number of menus
|
|
USHORT m_uIDPopupMin; //Lowest menu ID
|
|
USHORT m_uIDPopupMax; //Highest menu ID
|
|
|
|
HGLOBAL m_hMemSMM; //Mapping resource
|
|
PSTATMESSAGEMAP m_pSMM; //Item to ID mapping
|
|
PSTATMESSAGEMAP m_pNewSMM; //Item to ID mapping
|
|
PPOPUPMENUMAP m_pPMM; //Menu to ID mapping
|
|
|
|
public:
|
|
CStatusHelper(HWND, HINSTANCE);
|
|
~CStatusHelper(void);
|
|
|
|
BOOL MessageMap(HWND, UINT, UINT, UINT, UINT, UINT, UINT, UINT, UINT, UINT);
|
|
void MessageDisplay(UINT);
|
|
void MenuSelect(WORD, WORD, HMENU);
|
|
BOOL Append(UINT, LPSTR);
|
|
BOOL Replace(UINT, LPSTR);
|
|
|
|
private:
|
|
void Sort(void);
|
|
USHORT IDFromHMenu(HMENU);
|
|
UINT IStringFromID(USHORT);
|
|
|
|
};
|
|
|
|
typedef CStatusHelper *PCStatusHelper;
|
|
|
|
|
|
#endif //_CSTATHLP_H_
|