ListWidthChgCombo.cpp
上传用户:hbjdyb2005
上传日期:2021-01-26
资源大小:168k
文件大小:1k
源码类别:

组合框控件

开发平台:

Visual C++

  1. // ListWidthChgCombo.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "CListWidthChgCombo.h"
  5. #include "ListWidthChgCombo.h"
  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #undef THIS_FILE
  9. static char THIS_FILE[] = __FILE__;
  10. #endif
  11. /////////////////////////////////////////////////////////////////////////////
  12. // CListWidthChgCombo
  13. CListWidthChgCombo::CListWidthChgCombo()
  14. {
  15. ListWidth=100;
  16. }
  17. CListWidthChgCombo::~CListWidthChgCombo()
  18. {
  19. }
  20. BEGIN_MESSAGE_MAP(CListWidthChgCombo, CComboBox)
  21. //{{AFX_MSG_MAP(CListWidthChgCombo)
  22. ON_WM_CTLCOLOR()
  23. //}}AFX_MSG_MAP
  24. END_MESSAGE_MAP()
  25. /////////////////////////////////////////////////////////////////////////////
  26. // CListWidthChgCombo message handlers
  27. HBRUSH CListWidthChgCombo::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
  28. {
  29. HBRUSH hbr = CComboBox::OnCtlColor(pDC, pWnd, nCtlColor);
  30. switch (nCtlColor) 
  31. {
  32. case CTLCOLOR_EDIT:
  33. break;
  34. case CTLCOLOR_LISTBOX:
  35. if (ListWidth > 0)
  36. {             
  37. CRect rect;
  38. pWnd->GetWindowRect(&rect);
  39. if (rect.Width() != ListWidth) {
  40. rect.right = rect.left + ListWidth;
  41. pWnd->MoveWindow(&rect);
  42. }
  43. }
  44. break;
  45. }
  46. // TODO: Return a different brush if the default is not desired
  47. return hbr;
  48. }