94 CTinyListDialog(
bool isColorMode =
true) : m_hParentWnd(NULL), m_parentMenuItem(0), m_isColorMode(isColorMode)
98 m_pListBox = &m_logColorList;
102 m_pListBox = &m_logBwList;
118 bool Create(
const CSize& size, HFONT hFont, HWND hParentWnd, LPCTSTR lpszTitle, HICON hIcon, UINT parentMenuItem = 0)
121 if ( m_menu.GetSafeHmenu() == NULL )
123 m_subMenu1.CreateMenu();
124 m_subMenu2.CreateMenu();
126 m_subMenu1.AppendMenu(0,
MenuId_Hide, _T(
"隠す(&H)"));
128 m_menu.AppendMenu(MF_POPUP,
reinterpret_cast<UINT_PTR
>(m_subMenu1.GetSafeHmenu()), _T(
"ファイル(&F)"));
129 m_menu.AppendMenu(MF_POPUP,
reinterpret_cast<UINT_PTR
>(m_subMenu2.GetSafeHmenu()), _T(
"表示(&H)"));
131 if ( ! m_dmyWnd.
Create(
this, lpszTitle, NULL, (WS_OVERLAPPEDWINDOW & ~WS_MINIMIZEBOX) | WS_CLIPCHILDREN, m_menu) )
135 m_parentMenuItem = parentMenuItem;
136 m_hParentWnd = hParentWnd;
137 CWnd* pDmyWnd = CWnd::FromHandle(m_dmyWnd);
138 ::SetWindowPos(m_dmyWnd, hParentWnd, 0, 0, size.cx, size.cy, 0);
139 pDmyWnd->CenterWindow();
140 CRect rc(0, 0, size.cx, size.cy);
141 DWORD style = LBS_NOINTEGRALHEIGHT | LBS_EXTENDEDSEL | WS_VSCROLL;
144 style |= LBS_OWNERDRAWVARIABLE;;
145 style |= LBS_HASSTRINGS;
149 style |= LBS_OWNERDRAWFIXED | LBS_NODATA;
151 m_pListBox->Create(style, rc, pDmyWnd, 1000);
152 m_pListBox->SetFont(CFont::FromHandle(hFont));
154 m_pListBox->
ModifyStyleEx(0, WS_EX_CLIENTEDGE, SWP_FRAMECHANGED);
155 pDmyWnd->SendMessage(WM_SETICON, 0,
reinterpret_cast<LPARAM
>(hIcon));
172 bool Create(
const CSize& size, HWND hParentWnd, LPCTSTR lpszTitle, HICON hIcon, UINT parentMenuItem = 0)
174 HFONT hFont =
reinterpret_cast<HFONT
>(::SendMessage(hParentWnd, WM_GETFONT, 0, 0));
175 return Create(size, hFont, hParentWnd, lpszTitle, hIcon, parentMenuItem);
184 if ( m_dmyWnd != NULL )
187 ::GetWindowRect(m_hParentWnd, &rc);
192 CWnd* pDmyWnd = CWnd::FromHandle(m_dmyWnd);
193 pDmyWnd->CenterWindow();
198 ::SetWindowPos(m_dmyWnd, NULL, rc.left, rc.bottom, 0, 0, SWP_NOSIZE | SWP_NOZORDER);
201 ::SetWindowPos(m_dmyWnd, NULL, rc.right, rc.top, 0, 0, SWP_NOSIZE | SWP_NOZORDER);
251 int m = (mode ==
SHOW) ? SW_SHOW : SW_HIDE;
265 ::SetWindowPos(m_dmyWnd, isTop ? HWND_TOPMOST : HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
275 ASSERT( m_isColorMode );
276 return m_logColorList;
286 ASSERT( ! m_isColorMode );
310 ASSERT( m_isColorMode );
311 m_logColorList.SetCurrentColor(colorText, colorBack);
322 void SetColor(
int nIndex, COLORREF colorText, COLORREF colorBack)
324 ASSERT( m_isColorMode );
325 m_logColorList.SetColor(nIndex, colorText, colorBack);
334 m_logColorList.SetMargin(m);
344 m_logColorList.SetMaxLine(maxLine);
354 m_pListBox->SetFont(pFont);
365 ASSERT( m_isColorMode );
366 m_logColorList.SetPostViewMode(isView);
379 void PostString(
int nIndex, LPCTSTR lpszItem, COLORREF colorText = 0, COLORREF colorBack = 0)
383 m_logColorList.PostString(nIndex, lpszItem, colorText, colorBack);
389 if ( m_parentMenuItem == 0 )
404 void PostString(LPCTSTR lpszItem, COLORREF colorText = 0, COLORREF colorBack = 0)
406 PostString(-1, lpszItem, colorText, colorBack);
417 void PostStringCr(LPCTSTR lpszItem, COLORREF colorText = 0, COLORREF colorBack = 0)
457 m_pListBox->ResetContent();
475 virtual bool OnWindowMessage(LRESULT& _result, HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
483 m_pListBox->MeasureItem(
reinterpret_cast<LPMEASUREITEMSTRUCT
>(lParam));
486 m_pListBox->DrawItem(
reinterpret_cast<LPDRAWITEMSTRUCT
>(lParam));
491 CSize sz(LOWORD(lParam), HIWORD(lParam));
492 m_pListBox->
SetWindowPos(NULL, 0, 0, sz.cx, sz.cy, SWP_NOZORDER);
498 m_pListBox->SendMessage(message, wParam, lParam);
501 m_menu.DestroyMenu();
505 if ( m_parentMenuItem != 0 )
507 HMENU h = ::GetMenu(m_hParentWnd);
510 UINT r = (wParam != 0) ? MF_CHECKED : MF_UNCHECKED;
511 ::CheckMenuItem(h, m_parentMenuItem, r);
538 virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
540 if ( message == WM_CLB_POSTSTRING )
542 _super::DelayedRedraw();
544 return _super::WindowProc(message, wParam, lParam);
550 CInListBox m_logColorList;
556 UINT m_parentMenuItem;
#define loop(VAR, CNT)
loop構文.
BOOL SetWindowPos(const CWnd *pWndInsertAfter, int x, int y, int cx, int cy, UINT nFlags)
[設定] ウィンドウサイズポジション設定.
BOOL ModifyStyleEx(DWORD dwRemove, DWORD dwAdd, UINT nFlags=0)
[設定] ウィンドウ拡張スタイル変更.
BOOL ShowWindow(int nCmdShow)
[設定] ウィンドウ表示状態.
HWND GetSafeHwnd(void) const
[取得] ウィンドウハンドル取得.
size_t GetLineCount(void) const
[取得] ライン数取得.
const TYP * GetString(INDEX index) const
[取得] 文字列取得.
size_t SetClone(const TYP *lpszText)
[設定] データ設定.
bool IsWindow(void) const
[確認] ウィンドウの有無.
void Destroy(void)
[操作] ウィンドウの破棄.
bool Create(CDummyWindow::IListener *I, LPCTSTR lpszTitle=NULL, LPCTSTR lpszClassName=NULL, DWORD dwStyle=WS_OVERLAPPEDWINDOW, HMENU hMenu=NULL, HWND hParent=NULL)
[操作] ウィンドウの作成.
void SetMaxLine(int maxLine)
[設定] 最大ライン数設定.
void PostString(int nIndex, LPCTSTR lpszItem)
[追加] 文字列追加.
void SetMargin(DWORD m)
[設定] マージン設定
void SetMaxLine(int maxLine)
[設定] 最大ライン数設定.
virtual void OnCreate(void)
[通知] 作成完了通知.
bool IsWindowVisible(void)
[確認] ウィンドウ表示状態.
virtual void OnDestroy(void)
[通知] 破棄通知.
CTinyListDialog(bool isColorMode=true)
コンストラクタ.
void SetFont(CFont *pFont)
[設定] フォント設定
void PostString(LPCTSTR lpszItem, COLORREF colorText=0, COLORREF colorBack=0)
[追加] 文字列追加.
void SetCurrentColor(COLORREF colorText, COLORREF colorBack)
[設定] 文字色設定.
void PostString(int nIndex, LPCTSTR lpszItem, COLORREF colorText=0, COLORREF colorBack=0)
[追加] 文字列追加.
bool IsWindow(void) const
[確認] ウィンドウの有無.
bool Create(const CSize &size, HFONT hFont, HWND hParentWnd, LPCTSTR lpszTitle, HICON hIcon, UINT parentMenuItem=0)
[作成] ウィンドウ作成.
virtual void OnCommand(WPARAM wParam)
[通知] コマンド通知
void Destroy(void)
[操作] ウィンドウの破棄.
CLightListBox & ReferBwList(void)
[参照] 白黒リストコントロール参照.
void SetMargin(DWORD m)
[設定] マージン設定
void SetTopMost(bool isTop=true)
[表示] トップ表示.
void MoveWindow(EMoveMode mode=UNDER)
[移動] ウィンドウ移動.
bool Create(const CSize &size, HWND hParentWnd, LPCTSTR lpszTitle, HICON hIcon, UINT parentMenuItem=0)
[作成] ウィンドウ作成.
void SetPostViewMode(bool isView)
[設定] PostString表示モード設定.
void SetColor(int nIndex, COLORREF colorText, COLORREF colorBack)
[設定] 文字色設定.
CColorListBox & ReferColorList(void)
[参照] カラーリストコントロール参照.
void ShowWindow(EShowMode mode=SHOW)
[表示] 表示切替.
CMenu & ReferMenu(void)
[参照] メニュー参照.
void PostStringCr(LPCTSTR lpszItem, COLORREF colorText=0, COLORREF colorBack=0)
[追加] 文字列追加.