12#include "GUIWndCtrlBase.h"
13#include "GUIStyledCtrlBase.h"
28 class FL_EXPORT
CGUIComboBox :
public CComboBox,
public CGUIWndCtrlBase,
public CGUIStyledCtrlBase
226 virtual void PreSubclassWindow()
override;
227 virtual void DrawBackground(CDC* pDC, CRect rect);
228 virtual void DrawBorder(CDC* pDC, CRect rect);
229 virtual void DrawArrow(CDC* pDC, CRect rect);
230 virtual void DrawText(CDC* pDC, CRect rect);
232 void SetHookForListbox();
233 void DestroyToolTipWnd();
234 void CreateToolTipWnd();
235 static void HandleListboxMouseMove(
CGUIComboBox* pCombo, CListBox* pList, UINT uFlag, CPoint point);
236 static void HandleOnTimer(UINT nIDEvent);
237 static void HandleOnPaint();
238 static BOOL OnTrackMouseEvent(HWND hWnd, DWORD dwFlags);
240 static LRESULT CALLBACK HookListboxWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
241 static LRESULT CALLBACK HookTipWndProc(HWND hWnd, UINT message, WPARAM wp, LPARAM lp);
245 int32_t m_i32BtnSize;
246 int32_t m_i32PrevSel;
247 int32_t m_i32HeightManuallySet;
250 BOOL m_bCursorOnComboBox;
252 BOOL m_bDroppedState;
253 BOOL m_bDroppedStatePrev;
254 bool m_bEnableToolTipOnListBox;
256 CMap<int32_t, int32_t, CString, const wchar_t*> m_mapTipTexts;
257 CRect m_rcDropDownBtn;
259 CUIntArray m_arrDisabledItems;
261 static int m_i32OriginalSel;
262 static CWnd* m_pTipWnd;
263 static CFont m_fontToolTip;
264 static uint32_t m_u32DelayTime;
265 static BOOL m_bMouseCursorEntered;
267 static CMap<HWND, HWND, WNDPROC, WNDPROC&> m_mapWndProc;
268 static CMap<HWND, HWND, CGUIComboBox*, CGUIComboBox*&> m_mapCombo;
269 static int32_t m_i32ComboBoxCreationCount;
272 DECLARE_MESSAGE_MAP()
273 afx_msg
void OnPaint();
274 afx_msg
void OnLButtonDown(UINT nFlags, CPoint point);
275 afx_msg
void OnLButtonUp(UINT nFlags, CPoint point);
276 afx_msg
void OnMouseHover(UINT nFlags, CPoint point);
277 afx_msg
void OnMouseLeave();
278 afx_msg
void OnMouseMove(UINT nFlags, CPoint point);
279 afx_msg BOOL OnCbnKillfocus();
280 afx_msg
void OnSetFocus(CWnd* pOldWnd);
281 afx_msg
void OnKillFocus(CWnd* pNewWnd);
282 afx_msg BOOL OnCbnDropdown();
283 afx_msg BOOL OnCbnCloseup();
284 afx_msg BOOL OnCbnSelchange();
285 afx_msg BOOL OnCbnEditChange();
286 afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
287 afx_msg BOOL OnEraseBkgnd(CDC* pDC);
288 afx_msg
int OnCreate(LPCREATESTRUCT lpCreateStruct);
289 afx_msg
void OnSize(UINT nType,
int cx,
int cy);
290 afx_msg
void OnEnable(BOOL bEnable);
291 afx_msg
void OnDestroy();
292 afx_msg LRESULT OnSetFont(WPARAM hFont, LPARAM lParam);
virtual void SetVisibleItemCount(int32_t i32ItemsToShow)
콤보 박스의 드롭다운 높이를 지정하는 함수
virtual int SetCurSel(int nSelect)
현재 선택된 값을 지정하는 함수
virtual CEdit * GetEditBox() const
콤보박스의 에디트 박스 컨트롤을 반환합니다.
virtual int32_t GetPrevSel() const
이전에 선택된 값을 얻어 오는 함수
virtual bool IsToolTipOnListBoxEnabled() const
콤보박스의 리스트박스에 툴팁 기능이 활성화되어 있는지 확인합니다.
virtual int32_t GetButtonSize() const
콤보 박스의 버튼 사이즈를 얻어 오는 함수
virtual void SetHeight(int32_t i32Height)
콤보박스 컨트롤의 높이를 설정합니다.
virtual void SetButtonSize(int32_t i32Size)
콤보 박스의 버튼 사이즈를 지정하는 함수
virtual int32_t GetHeight() const
콤보박스 컨트롤의 현재 높이를 반환합니다.
virtual void SetDroppedState(BOOL bState)
콤보 박스의 드롭 다운 상태를 설정하는 함수
virtual ~CGUIComboBox()
기본 소멸자
static uint32_t GetToolTipDelay()
현재 설정된 툴팁 지연 시간을 반환합니다.
virtual void EnableToolTipOnListBox(bool bEnable=true)
콤보박스의 리스트박스에 툴팁 기능을 활성화하거나 비활성화합니다. 활성화되면 텍스트가 리스트박스에서 잘릴 경우 툴팁이 표시됩니다.
virtual void SetToolTipText(int32_t i32Index, const wchar_t *pWCsTipText)
특정 항목에 대한 툴팁 텍스트를 설정합니다.
virtual CListBox * GetListBox() const
콤보박스의 리스트박스 컨트롤을 반환합니다.
virtual BOOL GetDroppedState() const
콤보 박스의 드롭 다운 상태를 얻어 오는 함수
static void SetToolTipDelay(uint32_t u32Delay)
툴팁 창을 표시하기 위한 지연 시간을 설정합니다. CGUIComboBox 및 하위 클래스의 모든 콤보박스는 동일한 지연 시간을 사용합니다.
virtual int SetPrevSel(int nSelect)
이전에 선택된 값을 저장하는 함수
Definition D2DObject.h:12