📄 sczoombox.h
字号:
/*
* This file is part of the EMFexplorer projet.
* Copyright (C) 2004 Smith Charles.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*
* Extension: for commercial use, apply the Equity Public License, which
* adds to the normal terms of the GLPL a condition of donation to the author.
* If you are interested in support for this source code,
* contact Smith Charles <smith.charles@free.fr> for more information.
*/
#ifndef _SCZOOMBOX_H_
#define _SCZOOMBOX_H_
typedef struct tag_SCZoomEntry
{
LPCTSTR ze_lpszText;
int ze_iValue;
} SCZoomEntry, *PSCZoomEntry;
/////////////////////////////////////////////////////////////////////////////
// CSCZoomBox window
class CSCZoomBox : public CComboBox
{
// Construction/Destruction
public:
CSCZoomBox();
BOOL SCInitCombo();
virtual ~CSCZoomBox();
void SCReset();
// Attributes
public:
int SCGetCurValue() const { return m_iValue; }
void SCSetCurValue(int iZoom);
// Operations
public:
void SCSetFloatMultiplier(int iMultiplier);
void SCSetMinMax(int iMin, int iMax) { m_iMin = iMin; m_iMax = iMax; }
void SCSetDefaultList(PSCZoomEntry pZooms, USHORT usCount);
void SCTrapEnterKey(BOOL bTrap=TRUE) { m_bTrapEnter = bTrap; }
void SCSelectValue(int iValue);
void SCEatValue();
int SCIndexFromValue(int iValue);
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CSCZoomBox)
public:
virtual BOOL PreTranslateMessage(MSG* pMsg);
protected:
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
//}}AFX_VIRTUAL
// Implementation
public:
// Self-posted messages
afx_msg LRESULT OnSCDelayUpdateAndNotify(WPARAM wParam, LPARAM lParam);
// Generated message map functions
protected:
//{{AFX_MSG(CSCZoomBox)
afx_msg void OnSelchange();
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
afx_msg void OnKillFocus();
afx_msg void OnEditChange();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
protected:
CString SCValue2String(int iValue);
void SCCleanupDefaultList();
BOOL SCFillCombo();
void SCUpdateEditBox();
void SCNotifyParent();
inline void SCRestoreValue();
private:
int m_iValue; // selected value
int m_iMin; // minimum
int m_iMax; // and maximum values allowed
PSCZoomEntry m_pZoomDefaults; // list of default values
USHORT m_usZoomCount; // count of default values
int m_iFloatMultiplier; // multiplier to avoid using floats
BOOL m_bTrapEnter; // if true, trap the 'enter' key
BOOL m_bRestyled; // to enforce some styles
BOOL m_bUserText; // user typed something
};
/////////////////////////////////////////////////////////////////////////////
#endif //_SCZOOMBOX_H_
// ------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -