GuiFolderFlat.cpp
上传用户:wlkj888
上传日期:2022-08-01
资源大小:806k
文件大小:3k
源码类别:

对话框与窗口

开发平台:

Visual C++

  1. /****************************************************************************
  2.  * *  
  3.  * GuiToolKit   *
  4.  *  (MFC extension) *  
  5.  * Created by Francisco Campos G. www.beyondata.com fcampos@beyondata.com *
  6.  *--------------------------------------------------------------------------*    
  7.  * *
  8.  * This program is free software;so you are free to use it any of your *
  9.  * applications (Freeware, Shareware, Commercial),but leave this header *
  10.  * intact. *
  11.  * *
  12.  * These files are provided "as is" without warranty of any kind. *
  13.  * *
  14.  *        GuiToolKit is forever FREE CODE !!!!! *
  15.  * *
  16.  *--------------------------------------------------------------------------*
  17.  * Created by: Francisco Campos G. *
  18.  * Bug Fixes and improvements : (Add your name) *
  19.  * -Francisco Campos *
  20.  * *
  21.  ****************************************************************************/
  22. #include "stdafx.h"
  23. #include "guifolderflat.h"
  24. #include "GuiDrawLayer.h"
  25. #include "Guifolderflat.h"
  26. #ifdef _DEBUG
  27. #undef THIS_FILE
  28. static char THIS_FILE[]=__FILE__;
  29. #define new DEBUG_NEW
  30. #endif
  31. CGuiFolderFlat::CGuiFolderFlat(void)
  32. {
  33. }
  34. CGuiFolderFlat::~CGuiFolderFlat(void)
  35. {
  36. }
  37. void CGuiFolderFlat::DrawFolder(CFolderBar* cfb,Style m_Style)
  38. {
  39. CRect rc=cfb->m_rect;
  40. CBrush cb;
  41. CClientDC pDC(this);
  42. cb.CreateSysColorBrush(COLOR_BTNFACE);
  43. rc.top+=1;
  44. //rc.right-=1;
  45. rc.right+=1;
  46. pDC.FillRect(&rc,&cb);
  47. pDC.Draw3dRect(rc, GuiDrawLayer::GetRGBColorBTNHigh(),GuiDrawLayer::GetRGBColorShadow());
  48. int OldMode=pDC.SetBkMode(TRANSPARENT);
  49. cfont = pDC.SelectObject(CFont::FromHandle((HFONT)GetStockObject(DEFAULT_GUI_FONT)));
  50. CString m_cadBreak=cfb->m_lpMsg;
  51. int cont=m_cadBreak.GetLength();
  52. CSize coor=pDC.GetTextExtent(m_cadBreak,m_cadBreak.GetLength());
  53. if ( coor.cx > rc.Width())
  54. {
  55. rc.left+=1;
  56. while(cont > 1 )
  57. {
  58. CString m_scadtemp=m_cadBreak+"...";
  59. CSize coor=pDC.GetTextExtent(m_scadtemp,m_scadtemp.GetLength());
  60. if(coor.cx > rc.Width())
  61. m_cadBreak=m_cadBreak.Left(m_cadBreak.GetLength()-1);
  62. else
  63. break;
  64. cont--;
  65. }
  66. m_cadBreak+=_T("...");
  67. rc.right+=3;
  68. pDC.DrawText(m_cadBreak,rc,DT_SINGLELINE|DT_LEFT|DT_VCENTER);
  69. }
  70. else
  71. {
  72.   if (m_typel!=mOutlook)
  73. pDC.DrawText(cfb->m_lpMsg,rc,DT_SINGLELINE|DT_LEFT|DT_VCENTER);
  74.   else
  75. pDC.DrawText(cfb->m_lpMsg,rc,DT_WORDBREAK|DT_SINGLELINE|DT_CENTER|DT_VCENTER);
  76. }
  77.     pDC.SetBkColor(OldMode);
  78. }
  79. BEGIN_MESSAGE_MAP(CGuiFolderFlat, CGuiFolder)
  80. ON_WM_LBUTTONDOWN()
  81. END_MESSAGE_MAP()
  82. void CGuiFolderFlat::OnLButtonDown(UINT nFlags, CPoint point)
  83. {
  84. // TODO: Add your message handler code here and/or call default
  85. SetCursor(::LoadCursor(NULL,IDC_SIZEALL));
  86. CGuiFolder::OnLButtonDown(nFlags, point);
  87. }