CatsPropBar.h

C:\home\SVGCats_src\src\CatsPropBar.h

[型・クラス・構造体 | マクロ]

型・クラス・構造体一覧

マクロ一覧


   1|#if !defined(AFX_CATSPROPBAR_H__EDB14927_06A9_4A20_B660_A7626CD1A418__INCLUDED_) 
   2|#define AFX_CATSPROPBAR_H__EDB14927_06A9_4A20_B660_A7626CD1A418__INCLUDED_
   3|
   4|#if _MSC_VER > 1000
   5|#pragma once
   6|#endif // _MSC_VER > 1000
   7|// CatsPropBar.h : ヘッダー ファイル
   8|//
   9|
  10|#include "InitDialogBar.h"
  11|
  12|/////////////////////////////////////////////////////////////////////////////
  13|// CCatsPropBar ダイアログ
  14|//
  15|//・Window メッセージをこのクラスで受け取ることができる
  16|//・非常時の状態でウィンドウの位置を設定できる。(FloatControlBarは非表示でも一瞬表示してしまう)
  17|//・FloatControlBar で設定した座標と GetWindowRect で取得できる座標の誤差を内部で調整
  18|//
  19|
  20|class CCatsPropBar : public CInitDialogBar
  21|{
  22|public:
  23|  bool  m_bCreated;
  24|  bool  m_bVisible;
  25|  bool  m_bDocking;
  26|  DWORD m_EnableDocking_Style;  // EnableDocking の設定値の退避  取得関数がMFCに無いため
  27|
  28|  int   m_X, m_Y;    /* FloatControlBar に渡す座標. FloatContolBar(0,0) とすると丁度画面の左上端 */
  29|  int   m_DX, m_DY;  /* FloatControlBar した x,y から GetWindowRect で得られする x,y の誤差 */
  30|                     /* おそらく、枠の分の誤差。 */
  31|
  32|  CFrameWnd*  m_Parent;  // GetParent では Docking 状態によって変わるため
  33|  bool  m_bParentShow;
  34|  bool  m_bFirstMoveDone;
  35|  bool  m_bNotFloatingYet;
  36|  RECT  m_prevParentRc;
  37|  bool  m_bPrevParentIconic;
  38|
  39|
  40|  BOOL  Create(CWnd * pParentWnd, LPCTSTR lpszTemplateName,
  41|    UINT nStyle, UINT nID, BOOL bChange, bool bParentShow );
  42|  BOOL  Create(CWnd * pParentWnd, UINT nIDTemplate,
  43|    UINT nStyle, UINT nID, BOOL bChange, bool bParentShow );
  44|
  45|  void  SetVisible( bool b );
  46|  inline bool  GetVisible() { SyncXY();  return  m_bVisible; }
  47|
  48|  void  OnUpdate();
  49|
  50|  void  SetDocking( bool bDocking );
  51|  inline bool  GetDocking() { SyncXY();  return  m_bDocking; }
  52|  void  EnableDocking( DWORD style, bool bDocking = true );
  53|
  54|  void  OnParentMove( int x, int y );
  55|  void  OnParentSize( UINT nType, int cx, int cy );
  56|  void  OnChgParentShow();
  57|
  58|  void  SetFloatPos( int x, int y );
  59|  void  SetFloatStepPos( int x, int y );
  60|  inline int   GetFloatX() { SyncXY();  return  m_X; }
  61|  inline int   GetFloatY() { SyncXY();  return  m_Y; }
  62|  inline int   GetFloatStepX() { SyncXY();  return  m_X - m_prevParentRc.right; }
  63|  inline int   GetFloatStepY() { SyncXY();  return  m_Y - m_prevParentRc.top; }
  64|
  65|
  66|// 以下は内部用
  67|  void  Show();
  68|  void  Hide();
  69|  bool  MoveInScreen();
  70|  void  SyncXY();
  71|  inline bool  GetShown() {  return  m_bVisible && m_bParentShow; }
  72|
  73|// コンストラクション
  74|public:
  75|	CCatsPropBar();   // 標準のコンストラクタ
  76|
  77|// ダイアログ データ
  78|	//{{AFX_DATA(CCatsPropBar)
  79|	enum { IDD = IDD_PropBar };
  80|		// メモ: ClassWizard はこの位置にデータ メンバを追加します。
  81|	//}}AFX_DATA
  82|
  83|
  84|// オーバーライド
  85|	// ClassWizard は仮想関数のオーバーライドを生成します。
  86|	//{{AFX_VIRTUAL(CCatsPropBar)
  87|	protected:
  88|	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV サポート
  89|	//}}AFX_VIRTUAL
  90|
  91|// インプリメンテーション
  92|protected:
  93|
  94|	// 生成されたメッセージ マップ関数
  95|	//{{AFX_MSG(CCatsPropBar)
  96|	virtual BOOL OnInitDialog();
  97|	afx_msg void OnSize( UINT nType, int cx, int cy );
  98|	//}}AFX_MSG
  99|  LRESULT CCatsPropBar::OnSizeParent(WPARAM, LPARAM lParam);
 100|	DECLARE_MESSAGE_MAP()
 101|};
 102|
 103|//{{AFX_INSERT_LOCATION}}
 104|// Microsoft Visual C++ は前行の直前に追加の宣言を挿入します。
 105|
 106|#endif // !defined(AFX_CATSPROPBAR_H__EDB14927_06A9_4A20_B660_A7626CD1A418__INCLUDED_)
 107| 
 108|