87 template<
typename TYP>
104 CWnd* pParent = GetParent();
106 if ( ::IsWindow(P->GetSafeHwnd()) )
108 ASSERT0(
false,
"AddItem",
"既にクリエイトされているObjectが指定されました。" );
111 if ( ! P->Create(idd, pParent) )
113 ASSERT0(
false,
"AddItem",
"クリエイトに失敗しました。" );
116 P->SetParent(pParent);
117 P->SetWindowPos(
this, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
118 this->
SetWindowPos(P, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
119 DWORD style = P->GetStyle();
120 if ( (style & WS_CHILD) == 0 )
122 ASSERT0(
false,
"AddItem",
"ダイアログのリソースに、チャイルドのスタイルがありません。" );
126 P->ModifyStyleEx(0, WS_EX_CONTROLPARENT);
127 P->ModifyStyle(DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU, 0, SWP_FRAMECHANGED);
188 return m_currentIndex;
211 int r = m_currentIndex;
213 m_currentIndex = nItem;
270 _super::ShowWindow(SW_HIDE);
271 _super::PreSubclassWindow();
283 virtual LRESULT
WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
296 return _super::WindowProc(message, wParam, lParam);
304 void m_SetCurSel(
int idx)
312 if ( idx !=
ToInt(i) )
317 m_apPages[i]->SendMessage(WM_ACTIVATE, WA_INACTIVE, 0);
321 CWnd* pFocus = GetFocus();
322 if ( pFocus != NULL )
324 CWnd* P = pFocus->GetParent();
325 if ( P != NULL && ! P->IsWindowVisible() )
332 m_apPages[idx]->SendMessage(WM_ACTIVATE, WA_ACTIVE, 0);
336 void m_ResizeAll(
void)
339 _super::GetWindowRect(&r);
340 _super::GetParent()->ScreenToClient(&r);
343 m_apPages[i]->MoveWindow(r.left, r.top, r.Width(), r.Height());
#define loop(VAR, CNT)
loop構文.
BOOL SetWindowPos(const CWnd *pWndInsertAfter, int x, int y, int cx, int cy, UINT nFlags)
[設定] ウィンドウサイズポジション設定.
HWND GetSafeHwnd(void) const
[取得] ウィンドウハンドル取得.
void RemoveAll(void)
[削除] 空化
size_t GetSize(void) const
[取得] サイズ取得
bool Remove(INDEX index)
[削除] 要素一つ削除.
bool IsInRange(INDEX index) const
[確認] INDEXの有効確認.
INDEX Add(const TYP &t)
[追加] 要素一つ追加.
bool DeleteItem(int nItem)
[削除] アイテム削除.
int SetItemSel(HWND page)
[選択] タブ選択.
int SetItemSel(int nItem)
[選択] アイテム選択.
int AddItem(CDialog *pWnd, UINT idd)
[追加] アイテム追加.
size_t GetItemCount(void) const
[取得] アイテム数取得.
CWnd * GetWndItem(int nItem) const
[取得] ウィンドウ取得.
int AddItem(TYP *pWnd)
[追加] アイテム追加.
CSimpleVectorT< CWnd * > m_apPages
ページウィンドウ群
virtual void PreSubclassWindow(void)
[通知] subclassing/unsubclassing functions.
int GetItemSel(void) const
[取得] 選択アイテム取得.
virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
[通知] for processing Windows messages.
CWnd * GetWndItemSel(void) const
[取得] 選択アイテム取得.
int FindItem(HWND page) const
[検索] アイテム検索.
void DeleteAllItems(void)
[削除] 全アイテム削除.
int ToInt(LPCSTR lpsz, int iBase=10)
[変換] INT変換(ASCII/SJIS用).