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.
105 lines
3.2 KiB
105 lines
3.2 KiB
#ifndef _FMTBAR_H
|
|
#define _FMTBAR_H
|
|
|
|
#define FBN_BODYHASFOCUS 8001
|
|
#define FBN_BODYSETFOCUS 8002
|
|
#define FBN_GETMENUFONT 8003
|
|
|
|
class CFmtBar
|
|
{
|
|
public:
|
|
CFmtBar(BOOL fSep);
|
|
~CFmtBar();
|
|
|
|
ULONG AddRef();
|
|
ULONG Release();
|
|
|
|
HRESULT Init(HWND hwndParent, int iddlg);
|
|
HRESULT SetCommandTarget(LPOLECOMMANDTARGET pCmdTarget);
|
|
HRESULT OnWMCommand(HWND hwnd, int id, WORD wCmd);
|
|
HRESULT Update();
|
|
|
|
HRESULT Show();
|
|
HRESULT Hide();
|
|
|
|
HRESULT TranslateAcclerator(LPMSG lpMsg);
|
|
HRESULT GetWindow(HWND *pHwnd);
|
|
|
|
static LRESULT CALLBACK ExtWndProc(HWND hwnd, UINT wMsg, WPARAM wParam, LPARAM lParam);
|
|
static LRESULT CALLBACK EditSubProc(HWND hwnd, UINT wMsg, WPARAM wParam, LPARAM lParam);
|
|
static LRESULT CALLBACK ComboBoxSubProc(HWND hwnd, UINT wMsg, WPARAM wParam, LPARAM lParam);
|
|
static LRESULT CALLBACK RebarSubProc(HWND hwnd, UINT wMsg, WPARAM wParam, LPARAM lParam);
|
|
static INT CALLBACK ExtEnumFontNamesProcEx(ENUMLOGFONTEX *plf, NEWTEXTMETRICEX *ptm, INT nFontType, LPARAM lParam);
|
|
|
|
private:
|
|
IOleCommandTarget *m_pCmdTarget;
|
|
ULONG m_cRef;
|
|
HWND m_hwnd,
|
|
m_hwndParent,
|
|
m_hwndToolbar,
|
|
m_hwndName,
|
|
m_hwndSize,
|
|
m_hwndRebar,
|
|
m_hwndTT;
|
|
|
|
HMENU m_hmenuColor,
|
|
m_hmenuTag;
|
|
WNDPROC m_wndprocEdit,
|
|
m_wndprocNameComboBox,
|
|
m_wndprocSizeComboBox,
|
|
m_wndprocRebar;
|
|
HBITMAP m_hbmName;
|
|
BOOL m_fDestroyTagMenu :1,
|
|
m_fVisible :1,
|
|
m_fSep :1;
|
|
int m_idd;
|
|
HIMAGELIST m_himlHot,
|
|
m_himl;
|
|
|
|
HBITMAP LoadDIBBitmap(int id);
|
|
VOID AddToolTip(HWND hwndToolTips, HWND hwnd, UINT idRsrc);
|
|
DWORD FlipColor(DWORD rgb);
|
|
HRESULT HrShowTagMenu(POINT pt);
|
|
HRESULT HrInitTagMenu();
|
|
INT XFontSizeCombo(HDC hdc);
|
|
HRESULT CheckColor();
|
|
|
|
INT EnumFontNamesProcEx(ENUMLOGFONTEX *plf, NEWTEXTMETRICEX *ptm, INT nFontType);
|
|
|
|
// format bar
|
|
void FillFontNames();
|
|
void FillSizes();
|
|
|
|
HRESULT ExecCommand(UINT uCmDId, DWORD dwOpt, VARIANTARG *pvaIn);
|
|
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
|
|
|
|
// message handling
|
|
void OnNCDestroy();
|
|
HRESULT OnNCCreate(HWND hwnd);
|
|
void WMNotify(WPARAM wParam, NMHDR* pnmhdr);
|
|
|
|
// owner draw
|
|
void OnDrawItem(LPDRAWITEMSTRUCT pdis);
|
|
void OnMeasureItem(LPMEASUREITEMSTRUCT pmis);
|
|
void ComboBox_WMDrawItem(LPDRAWITEMSTRUCT pdis);
|
|
|
|
BOOL FBodyHasFocus();
|
|
void SetBodyFocus();
|
|
|
|
HMENU hmenuGetStyleTagMenu();
|
|
|
|
HRESULT AttachWin();
|
|
|
|
HIMAGELIST _CreateToolbarBitmap(int idb, int cx);
|
|
HRESULT _SetToolbarBitmaps();
|
|
HRESULT _FreeImageLists();
|
|
|
|
};
|
|
|
|
|
|
|
|
typedef CFmtBar *LPFORMATBAR;
|
|
|
|
HRESULT HrCreateFormatBar(HWND hwndParent, int iddlg, BOOL fSep, LPFORMATBAR *ppFmtBar);
|
|
|
|
#endif // _FMTBAR_H
|