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

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

?? resizer.h

?? modbus PLC 模擬程序
?? H
字號:
/******************************************************************************\
$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();
};

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩国产区一| 亚洲免费伊人电影| 亚洲男人的天堂在线aⅴ视频| 成人免费高清视频在线观看| 欧美国产精品久久| 欧美美女一区二区三区| 国产成人免费视频网站| 欧美日本高清视频在线观看| 成人午夜视频福利| 日韩黄色一级片| 亚洲欧美综合色| 欧美久久久久久久久中文字幕| 成人黄色软件下载| 国产综合久久久久久鬼色| 亚洲综合免费观看高清完整版| 久久亚洲一区二区三区四区| 欧美一区二区三区色| 91精品福利视频| 精品一二三四区| 男人的j进女人的j一区| 亚洲一区二区三区中文字幕在线| 精品久久免费看| 在线不卡中文字幕| 日本高清成人免费播放| 丁香桃色午夜亚洲一区二区三区| 中文字幕一区二区三区四区不卡 | 韩国欧美一区二区| 亚洲精品国产无套在线观| 国产精品天天摸av网| 欧美一区二区在线视频| 欧美日韩免费电影| 欧美日韩国产123区| 欧美亚洲综合在线| www.亚洲色图.com| 国产一区二区三区香蕉| 久久激情五月激情| 美脚の诱脚舐め脚责91| 亚洲成av人**亚洲成av**| 亚洲色图欧美激情| 久久品道一品道久久精品| 日韩视频国产视频| 精品国产百合女同互慰| 精品久久人人做人人爰| 久久只精品国产| 国产片一区二区三区| 欧美伦理影视网| 国产精品入口麻豆原神| 亚洲婷婷在线视频| 国产视频不卡一区| 婷婷开心久久网| 精品伊人久久久久7777人| 精彩视频一区二区三区| 国产精品一区二区久久精品爱涩| 国产精品一二三四五| 国产美女主播视频一区| 国产剧情在线观看一区二区| 国产98色在线|日韩| 成人app网站| 一本一本大道香蕉久在线精品| av一二三不卡影片| 99久久免费精品| 91国偷自产一区二区开放时间| 欧美视频一区二区在线观看| 91麻豆精品国产91| 久久久久久夜精品精品免费| 亚洲天堂中文字幕| 成人黄色国产精品网站大全在线免费观看 | av中文字幕亚洲| 欧美亚洲综合一区| 色狠狠一区二区三区香蕉| 久久精品国产亚洲5555| 国产精品自拍网站| av不卡在线观看| 日韩一区二区精品葵司在线| 国产欧美精品国产国产专区 | 亚洲欧洲国产日本综合| 亚洲啪啪综合av一区二区三区| 一区二区三区成人| 激情久久五月天| 国产成人免费视频一区| 欧美三级资源在线| 亚洲国产一二三| 成熟亚洲日本毛茸茸凸凹| 欧美午夜精品理论片a级按摩| 久久久午夜精品| 怡红院av一区二区三区| 国产精华液一区二区三区| 日本精品一级二级| 国产日产亚洲精品系列| 亚洲一级电影视频| 91网址在线看| 国产网站一区二区| 日本中文字幕一区二区有限公司| 91丨九色丨尤物| 国产亚洲欧美日韩俺去了| 男女男精品网站| 91精品福利视频| 一区二区三区日韩欧美精品| 国产高清亚洲一区| 国产区在线观看成人精品 | 免费成人你懂的| 欧美在线视频日韩| 亚洲精品乱码久久久久久久久| 99精品视频一区二区| 欧美日韩国产乱码电影| 色婷婷精品大在线视频| 亚洲第一二三四区| 欧美欧美午夜aⅴ在线观看| 欧美日韩视频在线观看一区二区三区| 国产精品久久免费看| 成人教育av在线| 国产日韩精品一区| 成人免费观看视频| 国产精品青草久久| 亚洲小说春色综合另类电影| 视频一区二区三区入口| 欧美亚洲愉拍一区二区| 亚洲资源在线观看| 欧美日韩你懂得| 亚洲国产欧美在线| 日本国产一区二区| 欧美一区二区视频在线观看| 久久国产生活片100| 精品国产乱码久久久久久久久| 国模少妇一区二区三区| 一区二区欧美视频| 久久激情综合网| 国产欧美日本一区视频| 成人黄色av网站在线| 国产激情91久久精品导航| 日本精品一区二区三区四区的功能| 天堂一区二区在线免费观看| 国产日韩欧美高清在线| 欧美高清hd18日本| 91国在线观看| av亚洲产国偷v产偷v自拍| 国内精品久久久久影院薰衣草 | 国产日韩欧美a| 欧美人伦禁忌dvd放荡欲情| av一区二区三区在线| 国产一区视频导航| 午夜久久电影网| 1区2区3区精品视频| www激情久久| 欧美一级xxx| 欧美三级电影一区| 色婷婷综合久久久| 9i在线看片成人免费| 国产99久久久国产精品潘金网站| 日本一不卡视频| 日本系列欧美系列| 日韩av不卡一区二区| 日韩精品一二三区| 日韩制服丝袜先锋影音| 亚洲成av人片| 亚洲韩国一区二区三区| 亚洲在线视频网站| 亚洲国产人成综合网站| 亚洲综合成人在线| 爽好久久久欧美精品| 天天色天天操综合| 日韩成人午夜精品| 日韩电影在线观看一区| 日韩福利电影在线观看| 另类专区欧美蜜桃臀第一页| 秋霞成人午夜伦在线观看| 日韩精品亚洲一区二区三区免费| 亚洲国产精品自拍| 蜜臀久久99精品久久久久久9| 麻豆成人免费电影| 国产麻豆成人传媒免费观看| 成人综合婷婷国产精品久久免费| 成人免费视频视频在线观看免费 | 亚洲日本va在线观看| 亚洲精选免费视频| 亚洲va国产va欧美va观看| 日本成人在线不卡视频| 激情综合网av| 成人精品国产福利| 欧美亚洲一区二区在线| 日韩欧美色综合| 欧美激情一区二区三区全黄| 亚洲欧美日韩国产另类专区| 亚洲www啪成人一区二区麻豆| 另类小说综合欧美亚洲| a美女胸又www黄视频久久| 欧美日韩免费观看一区二区三区 | 日韩精品在线网站| 国产精品午夜在线观看| 亚洲一区二区精品视频| 九九九久久久精品| 色呦呦国产精品| 精品久久一区二区| 一区二区三区高清在线| 激情图区综合网| 欧美视频一区二区三区四区| 国产性做久久久久久| 午夜精品久久久久久久久久久| 国产精品99久久不卡二区| 在线亚洲高清视频|