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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? resizer.h

?? mod_RSsim
?? H
字號(hào):
/******************************************************************************\
$Copyright: (C)2001 Dmitry Kochin <dco@mail.ru>
$Workfile: Resizer.h $
\******************************************************************************/

// Resizer.h: interface for the CResizer class.
//
//////////////////////////////////////////////////////////////////////
// Class to correctly move child windows after parent window was resized
// Created: 06/07/01 by dukei@
//////////////////////////////////////////////////////////////////////

//An idea:
//
//Each child window side (left, top, right and bottom) is connected to a side of another window,
//so called relative window. It is tipically dialog window, that owns the child window.
//When dialog window is resized, child window sides are moved after the relative window,
//preserving the connections. 
//
//Typical usage:
//
// 1. CResizer m_resizer is member variable;
//
// 2. Add the following code to OnInitDialog() 
// (replacing control IDs to your specific ones).
// See array format description later in the comment
//  
//  static CResizer::CBorderInfo s_bi[] = {
//    {IDC_CONTROL_ID,      {CResizer::eFixed, IDC_MAIN, CResizer::eLeft}, //Left side
//                          {CResizer::eFixed, IDC_MAIN, CResizer::eTop},  //Top side
//                          {CResizer::eFixed, IDC_MAIN, CResizer::eLeft}, //Right side
//                          {CResizer::eFixed, IDC_MAIN, CResizer::eTop}}, //Bottom side
//    {IDC_STATIC_ID,       {CResizer::eFixed, IDC_MAIN, CResizer::eLeft}, 
//                          {CResizer::eFixed, IDC_MAIN, CResizer::eTop},  
//                          {CResizer::eFixed, IDC_MAIN, CResizer::eRight},
//                          {CResizer::eFixed, IDC_MAIN, CResizer::eTop}}, 
//  };
//  const nSize = sizeof(s_bi)/sizeof(s_bi[0]);
//  m_resizer.Init(m_hWnd, NULL, s_bi, nSize);
//
// 3. Add the following code to OnSize() handler
//
//  m_resizer.Move();
//
// 4. Everything should work now
//
// P.S. Data array format consists of one or more CBorderInfo structures, which contains
// moved control ID (first field) and four CBorder structures, 
// for left, top, right and bottom sides of moved control accordingly.
//
// The main difficulty is to understand CBorder structure, which has the following format:
// 
// {<how control side is connected to side of another window>, <another window id>, 
//                  <side of another window, to which a control side is connected>}
// 
//     CResizer::eFixed                                  CResizer::eLeft 
//     CResizer::eProportional  IDC_MAIN                 CResizer::eTop   
// or {CResizer::eWidth       , IDC_ANOTHER_CONTROL_ID , CResizer::eRight   }
//     CResizer::eHeight                                 CResizer::eBottom
//                                                       CResizer::eXCenter
//                                                       CResizer::eYCenter
//
// For example, {CResizer::eFixed, IDC_MAIN, CResizer::eLeft} means, that moved control side is
// on the fixed distance (CResizer::eFixed) from left side (CResizer::eLeft) of dialog window (IDC_MAIN)
//
// Another example: {CResizer::eProportional, IDC_CONTROL_ID, CResizer::eLeft} means, that
// moved control side preserves relation (proportionaly) (CResizer::eProportional)
// to the width (CResizer::eLeft or CResizer::eRight) of control IDC_CONTROL_ID.
//
// TIP: Resizer resizes controls in the order they are defined in the array, so
// <another window id> should always be defined (and, therefore, moved by the resizer) before
// it is used as relative window. Otherwise, resizer ASSERTs.

#pragma once

#define IDC_MAIN 0   //Parent dialog ID to be relative window

class CResizer  
{
public:
  enum EBorder{
    eFixed = 1,  //Given distance to specified window side
    eProportional, //Coordinate is changed proportionally to width/height of specified window
    eWidth,   //The width is preserved (relative window and window side are ignored)
    eHeight,  //The height is preserved (relative window and window side are ignored)
  };
  enum ESize{
    eLeft = 1,  //Relative to left side
    eTop,       //Top
    eRight,     //Right
    eBottom,    //Bottom
    eXCenter,   //The center of width
    eYCenter    //The center of height
  };
  struct CBorder{
    EBorder eType;  //Type of relation to relative control side
    int nRelID;     //Relative control
    ESize eRelType; //Side of relative control
  };
  struct CBorderInfo{
    int nID;         //Control ID
    CBorder left;    
    CBorder top;
    CBorder right;
    CBorder bottom;
  };
private:
  struct CControlInfo{
    RECT rcInitial; //initial control position;
    const CBorderInfo *pInfo;
  };
  struct CRectInfo{
    int nID;       //Control ID
    RECT rc;      //New control rect
    bool bVisible; //If control is visible
    bool bHide;    //If control should be hidden because it overlaps senior control
  };
  HWND m_wndParent;
  RECT m_rcInitial; //Initial window client area
  typedef CControlInfo * TInfo;
  typedef CRectInfo * TRectInfo;
  TInfo m_vInfo;
  int m_nSize; //Size of m_vInfo array
  mutable TRectInfo m_vRectInfo;
  mutable int m_nCachedSize; //Size of m_vRectInfo
protected:
  HWND GetDlgItem(int nID) const{return ::GetDlgItem(m_wndParent, nID);}
  void GetDlgItemRect(int nID, RECT &rc) const;
  void GetCachedDlgItemRect(int nID, RECT &rc) const;
  void GetInitialDlgItemRect(int nID, RECT &rc) const;
  void Move(int nIndex) const;
  int GetCoordinate(ESize eType, const RECT &rcInitial, const CBorder &border, const RECT &rc) const;
  static int GetRectCoord(ESize eType, const RECT &rc);
  static int GetRectSize(ESize eType, const RECT &rc);
  int GetRelativeCoord(const CBorder &border) const;
  int Find(int nID) const;
  int FindCached(int nID) const;
  void MoveAndHideOverlapped() const;
  void Clear();
public:
  //Initializes resizer
  bool Init(HWND hWndParent, LPCRECT rcInitial, const CBorderInfo *pBorders, int nSize);
  //Performs moving of controls
  void Move() const;
  //Just constructor
  CResizer();
  //Just destructor
  ~CResizer();
};

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产在线视频精品一区| 亚洲国产欧美在线| 国产成人综合在线| 亚洲国产精品99久久久久久久久 | 国产白丝精品91爽爽久久| 亚洲午夜激情网页| 欧美理论在线播放| 日韩一区精品字幕| 2020国产精品久久精品美国| 国产麻豆精品在线观看| 国产精品久久久久影院| 色综合亚洲欧洲| 亚洲国产裸拍裸体视频在线观看乱了| 欧美吞精做爰啪啪高潮| 婷婷国产在线综合| 久久综合中文字幕| 99国产欧美久久久精品| 亚洲成人精品一区| 日韩美女在线视频| 国产不卡在线播放| 亚洲免费资源在线播放| 欧美日本在线观看| 国产一区二区三区在线看麻豆| 亚洲国产高清不卡| 欧美日韩午夜影院| 国产精品一区二区久久精品爱涩| 亚洲日本免费电影| 91精品国产综合久久久久久漫画 | 粉嫩嫩av羞羞动漫久久久| 中文字幕欧美一| 制服丝袜在线91| 国产精品一二三在| 三级亚洲高清视频| 国产精品乱码妇女bbbb| 在线视频一区二区三区| 国产老女人精品毛片久久| 亚洲一区二区中文在线| 国产欧美精品一区| 色婷婷综合久久久久中文一区二区 | 欧美三电影在线| 国产高清不卡一区| 视频一区在线播放| 亚洲欧美日韩久久精品| 国产亚洲综合性久久久影院| 欧美色男人天堂| 成人aa视频在线观看| 奇米影视7777精品一区二区| 亚洲三级在线播放| 亚洲国产精品黑人久久久| 日韩一区二区在线看片| 欧洲生活片亚洲生活在线观看| 日本欧美韩国一区三区| 一区二区在线观看av| 欧美国产精品中文字幕| 欧美不卡视频一区| 7777精品伊人久久久大香线蕉完整版| 成人美女视频在线看| 青娱乐精品视频在线| 亚洲一区影音先锋| 亚洲精品v日韩精品| 中文字幕av一区 二区| 国产婷婷色一区二区三区| 日韩视频永久免费| 亚洲人成影院在线观看| 精品国产三级电影在线观看| 欧美精品第1页| 欧美丰满美乳xxx高潮www| 欧美亚洲愉拍一区二区| 日本丶国产丶欧美色综合| 99精品国产热久久91蜜凸| 成人精品国产福利| 成人av电影在线网| av福利精品导航| 97久久超碰精品国产| 99精品热视频| 成人综合在线视频| av在线不卡免费看| 99久久国产综合精品女不卡| 成人av综合一区| 色综合天天狠狠| 欧美中文字幕一区二区三区| 色婷婷综合久久久中文字幕| 欧美体内she精视频| 欧美精品一级二级| 3d动漫精品啪啪一区二区竹菊| 欧美一二三四在线| 久久亚洲影视婷婷| 久久九九久精品国产免费直播| 国产亚洲成年网址在线观看| 国产精品久线观看视频| 亚洲综合在线视频| 免费观看久久久4p| 国内精品久久久久影院色| 国产69精品久久久久毛片 | 色综合久久久久久久久久久| 91福利精品第一导航| 在线不卡免费欧美| 精品国产三级电影在线观看| 国产精品美女久久久久久久久久久 | 国产福利一区在线| 一本到三区不卡视频| 欧美日韩精品三区| 久久九九久久九九| 亚洲综合丁香婷婷六月香| 日韩av高清在线观看| 成人黄色小视频| 欧美男人的天堂一二区| 久久综合色之久久综合| 亚洲欧美韩国综合色| 美国av一区二区| 成人性生交大片免费看在线播放| 色偷偷成人一区二区三区91| 精品国产露脸精彩对白| 一区二区三区成人| 九九久久精品视频| 在线看国产日韩| 337p粉嫩大胆噜噜噜噜噜91av| 亚洲精品中文字幕乱码三区| 卡一卡二国产精品| 色综合久久66| 久久久久久9999| 亚洲成av人片观看| www.亚洲在线| 欧美成人欧美edvon| 亚洲综合激情小说| 国产成人精品影院| 91精品国产乱码久久蜜臀| 亚洲日本一区二区三区| 国产在线精品一区二区| 欧美日韩大陆一区二区| 亚洲欧洲成人精品av97| 国产制服丝袜一区| 欧美日韩一区二区三区在线| 《视频一区视频二区| 国产伦理精品不卡| 日韩欧美一级二级三级| 亚洲自拍偷拍网站| 成人美女视频在线观看| 亚洲精品在线免费播放| 日韩成人精品在线观看| 91免费观看国产| 国产欧美综合色| 精品一区二区三区欧美| 欧美一区二区视频在线观看| 亚洲曰韩产成在线| av成人免费在线| 日本一区二区三区久久久久久久久不| 日韩成人午夜精品| 欧美狂野另类xxxxoooo| 亚洲男人的天堂在线aⅴ视频| 国产69精品一区二区亚洲孕妇 | 欧美丰满美乳xxx高潮www| 亚洲三级在线观看| 久久久久久麻豆| 首页亚洲欧美制服丝腿| 欧美三日本三级三级在线播放| 亚洲天堂2014| 99久久久久久| 亚洲三级电影网站| 91在线你懂得| 亚洲日本免费电影| 91久久精品一区二区| 一区二区三区日韩| 在线观看一区日韩| 一区二区成人在线视频| 色激情天天射综合网| 亚洲黄色小说网站| 欧美日韩高清影院| 日韩中文字幕不卡| 欧美成人国产一区二区| 国产一区二区美女| 亚洲国产成人午夜在线一区| 韩国精品免费视频| 国产欧美日韩视频一区二区| 国产不卡一区视频| 1024国产精品| 欧美三级欧美一级| 蜜桃精品在线观看| 久久免费电影网| 成人午夜伦理影院| 亚洲精选免费视频| 91精品国产综合久久久久| 久久99国产精品免费| 欧美激情综合网| 一本到一区二区三区| 日韩二区在线观看| 久久亚洲精精品中文字幕早川悠里| 国产精品系列在线播放| 国产精品欧美一级免费| 欧美色图天堂网| 免费三级欧美电影| 国产欧美视频一区二区| www.在线成人| 午夜a成v人精品| 国产午夜精品一区二区| 91视频精品在这里| 麻豆精品在线观看| 欧美激情一区二区三区蜜桃视频| 色8久久人人97超碰香蕉987| 日韩精品91亚洲二区在线观看 |