• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            //
            //    Class:        CButtonST
            //
            //    Compiler:    Visual C++
            //    Tested on:    Visual C++ 5.0
            //                Visual C++ 6.0
            //
            //    Version:    See GetVersionC() or GetVersionI()
            //
            //    Created:    xx/xxxx/1998
            //    Updated:    03/March/2003
            //
            //    Author:        Davide Calabro'        davide_calabro@yahoo.com
            //                                    http://www.softechsoftware.it
            //
            //    Note:        Code for the PreSubclassWindow and OnSetStyle functions
            //                has been taken from the COddButton class
            //                published by Paolo Messina and Jerzy Kaczorowski
            //
            //    Disclaimer
            //    ----------
            //    THIS SOFTWARE AND THE ACCOMPANYING FILES ARE DISTRIBUTED "AS IS" AND WITHOUT
            //    ANY WARRANTIES WHETHER EXPRESSED OR IMPLIED. NO REPONSIBILITIES FOR POSSIBLE
            //    DAMAGES OR EVEN FUNCTIONALITY CAN BE TAKEN. THE USER MUST ASSUME THE ENTIRE
            //    RISK OF USING THIS SOFTWARE.
            //
            //    Terms of use
            //    ------------
            //    THIS SOFTWARE IS FREE FOR PERSONAL USE OR FREEWARE APPLICATIONS.
            //    IF YOU USE THIS SOFTWARE IN COMMERCIAL OR SHAREWARE APPLICATIONS YOU
            //    ARE GENTLY ASKED TO DONATE 5$ (FIVE U.S. DOLLARS) TO THE AUTHOR:
            //
            //        Davide Calabro'
            //        P.O. Box 65
            //        21019 Somma Lombardo (VA)
            //        Italy
            //
            #ifndef _BTNST_H
            #define _BTNST_H

            // Uncomment the following 2 lines to enable support for BCMenu class
            #define    BTNST_USE_BCMENU
            #include 
            "BCMenu.h"

            // Uncomment the following line to enable support for sound effects
            #define    BTNST_USE_SOUND

            #if _MSC_VER >= 1000
            #pragma once
            #endif // _MSC_VER >= 1000

            // Return values
            #ifndef    BTNST_OK
            #define    BTNST_OK                        0
            #endif
            #ifndef    BTNST_INVALIDRESOURCE
            #define    BTNST_INVALIDRESOURCE            1
            #endif
            #ifndef    BTNST_FAILEDMASK
            #define    BTNST_FAILEDMASK                2
            #endif
            #ifndef    BTNST_INVALIDINDEX
            #define    BTNST_INVALIDINDEX                3
            #endif
            #ifndef    BTNST_INVALIDALIGN
            #define    BTNST_INVALIDALIGN                4
            #endif
            #ifndef    BTNST_BADPARAM
            #define    BTNST_BADPARAM                    5
            #endif
            #ifndef    BTNST_INVALIDPRESSEDSTYLE
            #define    BTNST_INVALIDPRESSEDSTYLE        6
            #endif

            // Dummy identifier for grayscale icon
            #ifndef    BTNST_AUTO_GRAY
            #define    BTNST_AUTO_GRAY                    (HICON)(0xffffffff - 1L)
            #endif
            // Dummy identifier for 15% darker icon
            #ifndef    BTNST_AUTO_DARKER
            #define    BTNST_AUTO_DARKER                (HICON)(0xffffffff - 2L)
            #endif

            class CButtonST : public CButton
            {
            public:
                CButtonST();
                
            ~CButtonST();

                
            enum    {    ST_ALIGN_HORIZ    = 0,            // Icon/bitmap on the left, text on the right
                            ST_ALIGN_VERT,                    // Icon/bitmap on the top, text on the bottom
                            ST_ALIGN_HORIZ_RIGHT,            // Icon/bitmap on the right, text on the left
                            ST_ALIGN_OVERLAP                // Icon/bitmap on the same space as text
                        }
            ;

                
            enum    {    BTNST_COLOR_BK_IN    = 0,        // Background color when mouse is INside
                            BTNST_COLOR_FG_IN,                // Text color when mouse is INside
                            BTNST_COLOR_BK_OUT,                // Background color when mouse is OUTside
                            BTNST_COLOR_FG_OUT,                // Text color when mouse is OUTside
                            BTNST_COLOR_BK_FOCUS,            // Background color when the button is focused
                            BTNST_COLOR_FG_FOCUS,            // Text color when the button is focused

                            BTNST_MAX_COLORS
                        }
            ;

                
            enum    {    BTNST_PRESSED_LEFTRIGHT = 0,    // Pressed style from left to right (as usual)
                            BTNST_PRESSED_TOPBOTTOM            // Pressed style from top to bottom
                        }
            ;

                
            // ClassWizard generated virtual function overrides
                
            //{{AFX_VIRTUAL(CButtonST)
                public:
                
            virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
                
            virtual BOOL PreTranslateMessage(MSG* pMsg);
                
            protected:
                
            virtual void PreSubclassWindow();
                
            //}}AFX_VIRTUAL

            public:
                DWORD SetDefaultColors(BOOL bRepaint 
            = TRUE);
                DWORD SetColor(BYTE byColorIndex, COLORREF crColor, BOOL bRepaint 
            = TRUE);
                DWORD GetColor(BYTE byColorIndex, COLORREF
            * crpColor);
                DWORD OffsetColor(BYTE byColorIndex, 
            short shOffset, BOOL bRepaint = TRUE);

                DWORD SetCheck(
            int nCheck, BOOL bRepaint = TRUE);
                
            int GetCheck();

                DWORD SetURL(LPCTSTR lpszURL 
            = NULL);
                
            void DrawTransparent(BOOL bRepaint = FALSE);
                DWORD SetBk(CDC
            * pDC);

                BOOL GetDefault();
                DWORD SetAlwaysTrack(BOOL bAlwaysTrack 
            = TRUE);

                
            void SetTooltipText(int nText, BOOL bActivate = TRUE);
                
            void SetTooltipText(LPCTSTR lpszText, BOOL bActivate = TRUE);
                
            void ActivateTooltip(BOOL bEnable = TRUE);
                DWORD EnableBalloonTooltip();

                DWORD SetBtnCursor(
            int nCursorId = NULL, BOOL bRepaint = TRUE);

                DWORD SetFlat(BOOL bFlat 
            = TRUE, BOOL bRepaint = TRUE);
                DWORD SetAlign(BYTE byAlign, BOOL bRepaint 
            = TRUE);
                DWORD SetPressedStyle(BYTE byStyle, BOOL bRepaint 
            = TRUE);

                DWORD DrawBorder(BOOL bDrawBorder 
            = TRUE, BOOL bRepaint = TRUE);
                DWORD DrawFlatFocus(BOOL bDrawFlatFocus, BOOL bRepaint 
            = TRUE);

                DWORD SetIcon(
            int nIconIn, int nCxDesiredIn, int nCyDesiredIn, int nIconOut = NULL, int nCxDesiredOut = 0int nCyDesiredOut = 0);
                DWORD SetIcon(
            int nIconIn, int nIconOut = NULL);
                DWORD SetIcon(HICON hIconIn, HICON hIconOut 
            = NULL);

                DWORD SetBitmaps(
            int nBitmapIn, COLORREF crTransColorIn, int nBitmapOut = NULL, COLORREF crTransColorOut = 0);
                DWORD SetBitmaps(HBITMAP hBitmapIn, COLORREF crTransColorIn, HBITMAP hBitmapOut 
            = NULL, COLORREF crTransColorOut = 0);

                
            void SizeToContent();

            #ifdef    BTNST_USE_BCMENU
                DWORD SetMenu(UINT nMenu, HWND hParentWnd, BOOL bWinXPStyle 
            = TRUE, UINT nToolbarID = NULL, CSize sizeToolbarIcon = CSize(1616), COLORREF crToolbarBk = RGB(2550255), BOOL bRepaint = TRUE);
            #else
                DWORD SetMenu(UINT nMenu, HWND hParentWnd, BOOL bRepaint 
            = TRUE);
            #endif
                DWORD SetMenuCallback(HWND hWnd, UINT nMessage, LPARAM lParam 
            = 0);

            #ifdef    BTNST_USE_SOUND
                DWORD SetSound(LPCTSTR lpszSound, HMODULE hMod 
            = NULL, BOOL bPlayOnClick = FALSE, BOOL bPlayAsync = TRUE);
            #endif

                
            static short GetVersionI()        {return 39;}
                
            static LPCTSTR GetVersionC()    {return (LPCTSTR)_T("3.9");}

                BOOL    m_bShowDisabledBitmap;
                POINT    m_ptImageOrg;
                POINT    m_ptPressedOffset;

            protected:
                
            //{{AFX_MSG(CButtonST)
                afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
                afx_msg 
            void OnKillFocus(CWnd* pNewWnd);
                afx_msg 
            void OnMouseMove(UINT nFlags, CPoint point);
                afx_msg 
            void OnSysColorChange();
                afx_msg BOOL OnClicked();
                afx_msg 
            void OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized);
                afx_msg 
            void OnEnable(BOOL bEnable);
                afx_msg 
            void OnCancelMode();
                afx_msg UINT OnGetDlgCode();
                
            //}}AFX_MSG

            #ifdef    BTNST_USE_BCMENU
                afx_msg LRESULT OnMenuChar(UINT nChar, UINT nFlags, CMenu
            * pMenu);
                afx_msg 
            void OnMeasureItem(int nIDCtl, LPMEASUREITEMSTRUCT lpMeasureItemStruct);
            #endif

                afx_msg HBRUSH CtlColor(CDC
            * pDC, UINT nCtlColor);
                HICON CreateGrayscaleIcon(HICON hIcon);
                HICON CreateDarkerIcon(HICON hIcon);
                HBITMAP CreateGrayscaleBitmap(HBITMAP hBitmap, DWORD dwWidth, DWORD dwHeight, COLORREF crTrans);
                HBITMAP CreateDarkerBitmap(HBITMAP hBitmap, DWORD dwWidth, DWORD dwHeight, COLORREF crTrans);
                COLORREF DarkenColor(COLORREF crColor, 
            double dFactor);
                
            virtual DWORD OnDrawBackground(CDC* pDC, CRect* pRect);
                
            virtual DWORD OnDrawBorder(CDC* pDC, CRect* pRect);

                BOOL        m_bIsFlat;            
            // Is a flat button?
                BOOL        m_bMouseOnButton;    // Is mouse over the button?
                BOOL        m_bDrawTransparent;    // Draw transparent?
                BOOL        m_bIsPressed;        // Is button pressed?
                BOOL        m_bIsFocused;        // Is button focused?
                BOOL        m_bIsDisabled;        // Is button disabled?
                BOOL        m_bIsDefault;        // Is default button?
                BOOL        m_bIsCheckBox;        // Is the button a checkbox?
                BYTE        m_byAlign;            // Align mode
                BOOL        m_bDrawBorder;        // Draw border?
                BOOL        m_bDrawFlatFocus;    // Draw focus rectangle for flat button?
                COLORREF    m_crColors[BTNST_MAX_COLORS];    // Colors to be used
                HWND        m_hParentWndMenu;    // Handle to window for menu selection
                BOOL        m_bMenuDisplayed;    // Is menu displayed ?

            #ifdef    BTNST_USE_BCMENU
                BCMenu        m_menuPopup;        
            // BCMenu class instance
            #else
                HMENU        m_hMenu;            
            // Handle to associated menu
            #endif

            private:
                LRESULT OnSetCheck(WPARAM wParam, LPARAM lParam);
                LRESULT OnGetCheck(WPARAM wParam, LPARAM lParam);
                LRESULT OnSetStyle(WPARAM wParam, LPARAM lParam);
                LRESULT OnMouseLeave(WPARAM wParam, LPARAM lParam);

                
            void CancelHover();
                
            void FreeResources(BOOL bCheckForNULL = TRUE);
                
            void PrepareImageRect(BOOL bHasTitle, RECT* rpItem, CRect* rpTitle, BOOL bIsPressed, DWORD dwWidth, DWORD dwHeight, CRect* rpImage);
                HBITMAP CreateBitmapMask(HBITMAP hSourceBitmap, DWORD dwWidth, DWORD dwHeight, COLORREF crTransColor);
                
            virtual void DrawTheIcon(CDC* pDC, BOOL bHasTitle, RECT* rpItem, CRect* rpCaption, BOOL bIsPressed, BOOL bIsDisabled);
                
            virtual void DrawTheBitmap(CDC* pDC, BOOL bHasTitle, RECT* rpItem, CRect* rpCaption, BOOL bIsPressed, BOOL bIsDisabled);
                
            virtual void DrawTheText(CDC* pDC, LPCTSTR lpszText, RECT* rpItem, CRect* rpCaption, BOOL bIsPressed, BOOL bIsDisabled);
                
            void PaintBk(CDC* pDC);

                
            void InitToolTip();

                HCURSOR        m_hCursor;            
            // Handle to cursor
                CToolTipCtrl m_ToolTip;            // Tooltip

                CDC            m_dcBk;
                CBitmap        m_bmpBk;
                CBitmap
            *    m_pbmpOldBk;

                BOOL        m_bAlwaysTrack;        
            // Always hilight button?
                int            m_nCheck;            // Current value for checkbox
                UINT        m_nTypeStyle;        // Button style
                DWORD        m_dwToolTipStyle;    // Style of tooltip control

                TCHAR        m_szURL[_MAX_PATH];    
            // URL to open when clicked

            #pragma pack(
            1)
                typedef 
            struct _STRUCT_ICONS
                
            {
                    HICON        hIcon;            
            // Handle to icon
                    DWORD        dwWidth;        // Width of icon
                    DWORD        dwHeight;        // Height of icon
                }
             STRUCT_ICONS;
            #pragma pack()

            #pragma pack(
            1)
                typedef 
            struct _STRUCT_BITMAPS
                
            {
                    HBITMAP        hBitmap;        
            // Handle to bitmap
                    DWORD        dwWidth;        // Width of bitmap
                    DWORD        dwHeight;        // Height of bitmap
                    HBITMAP        hMask;            // Handle to mask bitmap
                    COLORREF    crTransparent;    // Transparent color
                }
             STRUCT_BITMAPS;
            #pragma pack()

            #pragma pack(
            1)
                typedef 
            struct _STRUCT_CALLBACK
                
            {
                    HWND        hWnd;            
            // Handle to window
                    UINT        nMessage;        // Message identifier
                    WPARAM        wParam;
                    LPARAM        lParam;
                }
             STRUCT_CALLBACK;
            #pragma pack()

                STRUCT_ICONS    m_csIcons[
            2];
                STRUCT_BITMAPS    m_csBitmaps[
            2];

                STRUCT_CALLBACK    m_csCallbacks;

            #ifdef    BTNST_USE_SOUND
            #pragma pack(
            1)
                typedef 
            struct _STRUCT_SOUND
                
            {
                    TCHAR        szSound[_MAX_PATH];
                    LPCTSTR        lpszSound;
                    HMODULE        hMod;
                    DWORD        dwFlags;
                }
             STRUCT_SOUND;
            #pragma pack()

                STRUCT_SOUND    m_csSounds[
            2];    // Index 0 = Over    1 = Clicked
            #endif

                DECLARE_MESSAGE_MAP()
            }
            ;

            //{{AFX_INSERT_LOCATION}}
            // Microsoft Developer Studio will insert additional declarations immediately before the previous line.

            #endif
            Posted on 2007-04-12 11:37 艾凡赫 閱讀(2354) 評論(0)  編輯 收藏 引用 所屬分類: MFC技術
            国产精品久久久久久久久久免费| 亚洲va久久久噜噜噜久久男同| 国产毛片欧美毛片久久久| 久久精品国产99国产精品| 国产一区二区三区久久| 亚洲AV无码1区2区久久| 日韩精品无码久久久久久| 亚洲av成人无码久久精品| 久久久久亚洲AV无码永不| 国产三级久久久精品麻豆三级| 人妻无码中文久久久久专区| 色综合久久夜色精品国产| 无码精品久久久久久人妻中字| 色婷婷综合久久久中文字幕| 精品久久无码中文字幕| 嫩草影院久久国产精品| 久久99精品久久久久久野外| 精品久久久久久久中文字幕 | 欧美日韩精品久久免费| 久久久www免费人成精品| 亚洲国产一成人久久精品| 狠狠色噜噜狠狠狠狠狠色综合久久 | 久久人人爽人人爽AV片| 久久精品国产亚洲AV不卡| 婷婷五月深深久久精品| 久久精品9988| 亚洲国产成人精品91久久久| 国内精品久久久久影院薰衣草| www久久久天天com| 一97日本道伊人久久综合影院| 久久久久久国产精品无码超碰| 99久久成人18免费网站| 伊人久久大香线蕉综合影院首页| 久久国产精品-久久精品| 亚洲另类欧美综合久久图片区| 国产精品国色综合久久| 亚洲国产精品嫩草影院久久| 国内精品人妻无码久久久影院| 亚洲欧美国产日韩综合久久| 久久99热精品| 久久综合给合久久狠狠狠97色69 |