TNB Library
TnbMfcPositionAdjuster.h
[詳解]
1#pragma once
13#include "TnbMfcCommon.h"
14#include "TnbDrawable.h"
15
16
17
18//TNB Library
19namespace TNB
20{
21
22
23
39{
40 DEFSUPER(IDrawable);
41protected:
42
46public:
47
54 CPositionAdjuster(CWnd* pWnd, bool canResize = true, bool boAlways = false)
55 : m_pWnd(pWnd), m_boCanResize(canResize), m_boAlways(boAlways)
56 {
57 }
58
64 virtual IDrawable* Clone(void) const
65 {
67 }
68
76 virtual bool GetSize(SIZE& _size) const
77 {
78 if ( m_pWnd != NULL )
79 {
80 CRect rc;
81 m_pWnd->GetWindowRect(&rc);
82 _size.cx = rc.Width();
83 _size.cy = rc.Height();
84 return true;
85 }
86 return false;
87 }
88
97 virtual bool Resize(const SIZE& size)
98 {
99 if ( m_boCanResize && m_pWnd != NULL )
100 {
101 return !! m_pWnd->SetWindowPos(NULL, 0, 0, size.cx, size.cy, SWP_NOMOVE | SWP_NOZORDER);
102 }
103 return false;
104 }
105
114 virtual void Draw(HDC dc, int x = 0, int y = 0) const
115 {
116 if ( m_boAlways || dc == NULL )
117 {
118 CRect rc;
119 m_pWnd->GetWindowRect(&rc);
120 m_pWnd->MoveWindow(x, y, rc.Width(), rc.Height(), false);
121 m_pWnd->RedrawWindow();
123 }
124 }
125};
126
127
128
129};
130
描画情報関係のヘッダ
MFCコントロール共通のヘッダ
ウィンドウ管理.
BOOL SetWindowPos(const CWnd *pWndInsertAfter, int x, int y, int cx, int cy, UINT nFlags)
[設定] ウィンドウサイズポジション設定.
HWND GetSafeHwnd(void) const
[取得] ウィンドウハンドル取得.
コントロール位置調整用描画クラス
CWnd * m_pWnd
コントロール
virtual void Draw(HDC dc, int x=0, int y=0) const
[描画] 描画.
bool m_boAlways
true なら DC がNULL 以外でも配置変更
virtual bool Resize(const SIZE &size)
[設定] サイズ設定.
bool m_boCanResize
true ならリサイズ対応
virtual bool GetSize(SIZE &_size) const
[取得] サイズ取得.
virtual IDrawable * Clone(void) const
[作成] クローン作成.
CPositionAdjuster(CWnd *pWnd, bool canResize=true, bool boAlways=false)
コンストラクタ
void SetProcessingFlag(HWND hWnd, bool isEnable)
[設定] 処理済フラグ操作.
Definition: TnbMfcCommon.h:427
TNB Library
Definition: TnbDoxyTitle.txt:2
描画情報インターフェース
Definition: TnbDrawable.h:37