亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? autohidexp.h

?? 一款最完整的工業組態軟源代碼
?? H
字號:
#if !defined(AFX_AUTOHIDE_H__20010516_C3E9_46AD_95FE_0080AD509054__INCLUDED_)
#define AFX_AUTOHIDE_H__20010516_C3E9_46AD_95FE_0080AD509054__INCLUDED_

#pragma once

/////////////////////////////////////////////////////////////////////////////
// AutoHideXp.h - An AutoHide control
//
// Written by Bjarke Viksoe (bjarke@viksoe.dk)
// Copyright (c) 2001-2003 Bjarke Viksoe.
//
// This code may be used in compiled form in any way you desire. This
// file may be redistributed by any means PROVIDING it is 
// not sold for profit without the authors written consent, and 
// providing that this notice and the authors name is included. 
//
// This file is provided "as is" with no expressed or implied warranty.
// The author accepts no liability if it causes any damage to you or your
// computer whatsoever. It's free, so don't hassle me about it.
//
// Beware of bugs.
//

#ifndef __cplusplus
   #error ATL requires C++ compilation (use a .cpp suffix)
#endif

#ifndef __ATLAPP_H__
   #error AutoHideXP.h requires atlapp.h to be included first
#endif


#define ATL_SIMPLE_AUTOHIDEVIEW_STYLE \
   (WS_CHILD|WS_VISIBLE|WS_CLIPCHILDREN|WS_CLIPSIBLINGS)

// Sliding window animation delay
#ifndef AUTOHIDE_DELAY_IN
   #define AUTOHIDE_DELAY_IN  200
   #define AUTOHIDE_DELAY_OUT 100
#endif

#define AUTOHIDE_LEFT    0
#define AUTOHIDE_BOTTOM  1

typedef struct
{
   HWND hWnd;
   TCHAR szTitle[80];
   int iImage;
   int iDirection;
   RECT rc;
} AUTOPANE;

#define WM_AUTOHIDE_SETPANE    WM_USER + 360
#define WM_AUTOHIDE_VIEWCLOSE  WM_USER + 361


///////////////////////////////////////////////////////
// CAutoFloatWindow

typedef CWinTraits<WS_POPUP|WS_CAPTION|WS_THICKFRAME|WS_SYSMENU, WS_EX_TOOLWINDOW> CAutoFloatWinTraits;

template< class T, class TBase = CWindow, class TWinTraits = CAutoFloatWinTraits >
class ATL_NO_VTABLE CAutoFloatWindowImpl : 
   public CWindowImpl< T, TBase, TWinTraits >
{
public:
   DECLARE_WND_CLASS_EX(NULL, CS_DBLCLKS, NULL)

   typedef CAutoFloatWindowImpl< T , TBase, TWinTraits > thisClass;

#ifndef AW_SLIDE
   // AnimateWindow() constants defined in Platform SDK
   enum
   {
      AW_HOR_POSITIVE = 0x00000001,
      AW_HOR_NEGATIVE = 0x00000002,
      AW_VER_POSITIVE = 0x00000004,
      AW_VER_NEGATIVE = 0x00000008,
      AW_HIDE         = 0x00010000,
      AW_ACTIVATE     = 0x00020000,
      AW_SLIDE        = 0x00040000,
   };
#endif // AW_SLIDE

   BEGIN_MSG_MAP(CAutoFloatWindowImpl)
      MESSAGE_HANDLER(WM_CREATE, OnCreate)
      MESSAGE_HANDLER(WM_NCPAINT, OnNcPaint)
      MESSAGE_HANDLER(WM_PRINT, OnPrint)
      MESSAGE_HANDLER(WM_NCHITTEST, OnHitTest)
      MESSAGE_HANDLER(WM_ERASEBKGND, OnEraseBackground)
      MESSAGE_HANDLER(WM_NCACTIVATE, OnNcActivate)
      MESSAGE_HANDLER(WM_SIZE, OnSize)
      MESSAGE_HANDLER(WM_SYSCOMMAND, OnSysCommand)
      MESSAGE_HANDLER(WM_SETTINGCHANGE, OnSettingChange)
      MESSAGE_HANDLER(WM_AUTOHIDE_SETPANE, OnSetPane);
   END_MSG_MAP()

   CAutoFloatWindowImpl() : 
      m_hwndOwner(NULL)
   {
      ::ZeroMemory(&m_pane, sizeof(m_pane));
   }
   
   HWND m_hwndOwner;
   AUTOPANE m_pane;
   SIZE m_sizeBorder;

   // Operations

   BOOL _AnimateWindow(DWORD dwTime, DWORD dwFlags)
   {
      if( !AtlIsOldWindows() ) {
         typedef BOOL (CALLBACK* LPFNANIMATEWINDOW)(HWND,DWORD,DWORD);
         LPFNANIMATEWINDOW lpfnAnimateWindow = (LPFNANIMATEWINDOW)
            ::GetProcAddress(::GetModuleHandle(_T("user32.dll")), "AnimateWindow");
         if( lpfnAnimateWindow != NULL ) return lpfnAnimateWindow( m_hWnd, dwTime, dwFlags );
      }
      // For incompatible AnimateWindow() Windows versions
      if( dwFlags & AW_ACTIVATE ) {
         SetWindowPos(HWND_TOP, 0,0,0,0, SWP_SHOWWINDOW|SWP_NOMOVE|SWP_NOSIZE|SWP_NOZORDER);
      }
      if( dwFlags & AW_HIDE ) {
         SetWindowPos(HWND_TOP, 0,0,0,0, SWP_HIDEWINDOW|SWP_NOACTIVATE|SWP_NOMOVE|SWP_NOSIZE|SWP_NOZORDER);
      }
      return FALSE;
   }

   void _DrawFrame(HDC hDC) const
   {
      // Repaint frame borders (except the border on the right)
      CDCHandle dc = hDC;
      HBRUSH hBrushBorder = ::GetSysColorBrush(COLOR_ACTIVEBORDER);
      HBRUSH hBrushGrey = ::GetSysColorBrush(COLOR_BTNFACE);
      RECT rcWin;
      GetWindowRect(&rcWin);
      RECT rcLeft = { 0, m_sizeBorder.cy, m_sizeBorder.cx, (rcWin.bottom - rcWin.top) - m_sizeBorder.cy };
      dc.FillRect(&rcLeft, m_pane.iDirection == AUTOHIDE_LEFT ? hBrushGrey : hBrushBorder);
      RECT rcBottom = { 0, (rcWin.bottom - rcWin.top) - m_sizeBorder.cy, (rcWin.right - rcWin.left) - m_sizeBorder.cx, (rcWin.bottom - rcWin.top) };
      dc.FillRect(&rcBottom, m_pane.iDirection == AUTOHIDE_LEFT ? hBrushBorder : hBrushGrey);
      if( m_pane.iDirection == AUTOHIDE_LEFT ) {
         RECT rcTop = { 0, 0, (rcWin.right - rcWin.left) - m_sizeBorder.cx, m_sizeBorder.cy };
         dc.FillRect(&rcTop, hBrushBorder);
      }
      else {
         RECT rcRight = { (rcWin.right - rcWin.left) - m_sizeBorder.cx, 0, (rcWin.right - rcWin.left), (rcWin.bottom - rcWin.top) };
         dc.FillRect(&rcRight, hBrushBorder);
      }
   }

   // Message handlers

   LRESULT OnCreate(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
   {
      SendMessage(WM_SETTINGCHANGE);
      return 0;
   }
   LRESULT OnSettingChange(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
   {
      m_sizeBorder.cx = ::GetSystemMetrics(SM_CYSIZEFRAME);
      m_sizeBorder.cy = ::GetSystemMetrics(SM_CYSIZEFRAME);
      return 0;
   }
   LRESULT OnEraseBackground(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
   {
      return 1; // handled, no background painting needed
   }
   LRESULT OnNcPaint(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
   {
      LRESULT lRes = DefWindowProc();
      CWindowDC dc(m_hWnd);
      _DrawFrame(dc);
      return lRes;
   }
   LRESULT OnNcActivate(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, BOOL& bHandled)
   {
      // When it becomes inactive, close the view
      if( (BOOL) wParam == FALSE ) {
         DWORD dwFlags = m_pane.iDirection == AUTOHIDE_LEFT ? AW_HOR_NEGATIVE : AW_VER_POSITIVE;
         _AnimateWindow(AUTOHIDE_DELAY_OUT, AW_SLIDE|dwFlags|AW_HIDE);
         RECT rc;
         GetWindowRect(&rc);
         WPARAM iSize = m_pane.iDirection == AUTOHIDE_LEFT ? rc.right - rc.left : rc.bottom - rc.top;
         ::SendMessage(m_hwndOwner, WM_AUTOHIDE_VIEWCLOSE, iSize, 0L);
      }
      bHandled = FALSE;
      return 0;
   }
   LRESULT OnHitTest(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
   {
      LRESULT lRes = DefWindowProc();
      switch( lRes ) {
      case HTBOTTOM:
      case HTBOTTOMLEFT:
      case HTLEFT:
      case HTCAPTION:
      case HTTOPRIGHT:
         lRes = HTCLIENT;
         break;
      case HTTOP:
      case HTTOPLEFT:
         lRes = m_pane.iDirection == AUTOHIDE_BOTTOM ? HTTOP : HTCLIENT;
         break;
      case HTRIGHT:
      case HTBOTTOMRIGHT:
         lRes = m_pane.iDirection == AUTOHIDE_LEFT ? HTRIGHT : HTCLIENT;
         break;
      }
      return lRes;
   }
   LRESULT OnSysCommand(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, BOOL& bHandled)
   {
      switch( wParam & 0xFFF0 ) {
      case SC_CLOSE:
         ::SetFocus(m_hwndOwner); // Kill focus
         return 0;
      }
      bHandled = FALSE;
      return 0;
   }
   LRESULT OnSize(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
   {
      if( !::IsWindow(m_pane.hWnd) ) return 0;
      RECT rc;
      GetClientRect(&rc);
      ::SetWindowPos(m_pane.hWnd, HWND_TOP, rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top, SWP_NOZORDER|SWP_SHOWWINDOW);
      return 0;
   }
   LRESULT OnPrint(UINT /*uMsg*/, WPARAM wParam, LPARAM lParam, BOOL& /*bHandled*/)
   {
      LRESULT lRes = DefWindowProc();
      if( lParam & PRF_NONCLIENT ) _DrawFrame( (HDC) wParam );
      return lRes;
   }
   LRESULT OnSetPane(UINT /*uMsg*/, WPARAM wParam, LPARAM lParam, BOOL& /*bHandled*/)
   {
      ATLASSERT(::IsWindow((HWND)wParam));
      ATLASSERT(lParam!=0);
      if( m_pane.hWnd != NULL ) ::ShowWindow(m_pane.hWnd, SW_HIDE);
      m_hwndOwner = (HWND) wParam;
      m_pane = *(reinterpret_cast<AUTOPANE *>(lParam));
      // Re-parent
      ::SetParent(m_pane.hWnd, m_hWnd);
      // Set title
      SetWindowText(m_pane.szTitle);
      // Place view inside pane
      // NOTE: OnSize() also calls ShowWindow() to restore an invisible child
      BOOL bDummy;
      OnSize(WM_SIZE, 0,0, bDummy);
      UpdateWindow();
      // Entr

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产乱| 午夜精品123| 亚洲影院在线观看| 激情综合一区二区三区| proumb性欧美在线观看| 日韩精品中文字幕在线不卡尤物| 自拍视频在线观看一区二区| 日韩中文字幕91| 成人国产精品免费观看视频| 日韩精品在线看片z| 亚洲成人在线网站| 91污在线观看| 中文字幕成人av| 国产在线视频一区二区三区| 欧美伦理电影网| 亚洲高清免费在线| 国产精品综合一区二区三区| 91精品国产综合久久久久久| 亚洲激情自拍视频| 91免费精品国自产拍在线不卡| 国产亚洲精品免费| 国产很黄免费观看久久| 精品国产伦理网| 日本91福利区| 欧美日韩成人综合天天影院 | 日韩三级中文字幕| 亚洲一区二区3| 99精品视频一区| 国产精品久久久久四虎| 成人a区在线观看| 国产精品沙发午睡系列990531| 激情综合亚洲精品| 久久综合色综合88| 激情成人午夜视频| 日韩精品在线一区二区| 蜜臂av日日欢夜夜爽一区| 欧美日韩成人在线一区| 日韩精品1区2区3区| 91精品国产综合久久久久久| 日韩avvvv在线播放| 日韩欧美在线影院| 国内成人免费视频| 国产精品久久免费看| 99视频有精品| 五月天一区二区| 日韩欧美不卡一区| 高潮精品一区videoshd| 亚洲欧美在线视频观看| 91色在线porny| 亚洲一区在线视频| 9191久久久久久久久久久| 久久精品国产久精国产爱| 欧美精品一区视频| eeuss鲁片一区二区三区 | 一本色道久久综合亚洲91| 亚洲视频中文字幕| 欧美剧情电影在线观看完整版免费励志电影 | 日本一区二区久久| 色综合久久久久综合体| 免费观看一级欧美片| 成人欧美一区二区三区| 色综合久久综合网欧美综合网 | 奇米888四色在线精品| 久久久一区二区三区| 91亚洲男人天堂| 日本伊人精品一区二区三区观看方式| 日韩欧美国产一区二区三区| 高潮精品一区videoshd| 亚洲v中文字幕| 国产午夜一区二区三区| 欧美亚洲免费在线一区| 激情av综合网| 亚洲国产精品一区二区久久| 精品处破学生在线二十三| 99re这里只有精品6| 免费在线观看一区二区三区| 最新久久zyz资源站| 日韩精品一区二区三区三区免费| 成人av电影免费观看| 青青草原综合久久大伊人精品| 国产精品久线在线观看| 91精品国产综合久久久蜜臀粉嫩| 99久久久久免费精品国产| 日韩福利电影在线观看| 亚洲同性gay激情无套| www国产成人| 7777精品伊人久久久大香线蕉经典版下载| 国产大片一区二区| 裸体健美xxxx欧美裸体表演| 一区二区三区国产精华| 欧美激情自拍偷拍| 欧美zozozo| 欧美福利视频一区| 色老头久久综合| 风间由美性色一区二区三区| 六月丁香婷婷久久| 日韩不卡在线观看日韩不卡视频| 最新国产成人在线观看| 欧美国产一区二区| 国产视频在线观看一区二区三区| 欧美精品日韩一本| 欧美亚洲高清一区| 在线免费亚洲电影| 91小视频在线| 91色视频在线| 94-欧美-setu| 成av人片一区二区| 欧美亚洲禁片免费| 色综合天天狠狠| 波多野结衣中文一区| 国产精品一级二级三级| 国产激情偷乱视频一区二区三区| 久久国产剧场电影| 六月婷婷色综合| 久久综合综合久久综合| 精品中文字幕一区二区| 精品一区二区免费| 麻豆免费精品视频| 韩国午夜理伦三级不卡影院| 久久99久久久欧美国产| 另类调教123区| 久久99精品视频| 国产高清视频一区| 成人网在线播放| 99精品久久只有精品| 日本韩国一区二区| 欧美酷刑日本凌虐凌虐| 日韩欧美国产三级| 久久久国产一区二区三区四区小说| 久久五月婷婷丁香社区| 国产精品私人影院| 依依成人精品视频| 婷婷丁香久久五月婷婷| 老鸭窝一区二区久久精品| 国产91精品一区二区麻豆网站| gogo大胆日本视频一区| 欧美午夜精品久久久久久超碰 | 久久综合给合久久狠狠狠97色69| 26uuuu精品一区二区| 国产精品欧美精品| 亚洲一区二区欧美| 久久99精品一区二区三区| 成人18视频日本| 69久久夜色精品国产69蝌蚪网| 日韩欧美国产午夜精品| 国产精品欧美久久久久一区二区| 亚洲韩国一区二区三区| 国产在线不卡视频| 在线观看视频一区| 久久综合色一综合色88| 亚洲欧美日韩国产另类专区| 爽爽淫人综合网网站| 国内精品免费在线观看| 色综合天天综合给合国产| 欧美一区日韩一区| 一区精品在线播放| 日一区二区三区| 不卡欧美aaaaa| 日韩一区二区三区在线观看| 国产精品免费久久久久| 日韩高清一区在线| 91丨porny丨在线| 久久先锋影音av鲁色资源| 亚洲成人7777| 成人黄色在线视频| 欧美va天堂va视频va在线| 日韩理论在线观看| 国产一区在线观看视频| 8x8x8国产精品| 亚洲摸摸操操av| 国产99久久久国产精品潘金网站| 正在播放一区二区| 五月综合激情日本mⅴ| 国产精品亚洲一区二区三区妖精| 欧美无乱码久久久免费午夜一区| 国产亚洲人成网站| 麻豆视频一区二区| 69p69国产精品| 亚洲国产综合91精品麻豆| av不卡在线播放| 久久久另类综合| 激情综合网av| 精品少妇一区二区三区视频免付费 | 久久久亚洲精华液精华液精华液| 午夜精品一区在线观看| 91麻豆免费视频| 成人免费在线视频| 99久久免费国产| 亚洲国产精品黑人久久久| 久久99精品久久久久久国产越南| 88在线观看91蜜桃国自产| 亚洲一区在线观看免费| 91欧美一区二区| 亚洲日本免费电影| kk眼镜猥琐国模调教系列一区二区| 亚洲精品一区二区在线观看| 久久99久国产精品黄毛片色诱| 日韩欧美一级二级三级| 久久精品国产亚洲a| 日韩欧美国产系列|