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

对话框与窗口

开发平台:

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 "resource.h"
  24. #include "guitabbed.h"
  25. #include "GuiBaseTab.h"
  26. #include "Guitabbed.h"
  27. #define SCROLLCLOSE 0x886
  28. #define SCROLLLEFT  0x887
  29. #define SCROLLRIGHT 0x888
  30. #define IDD_COMBOBOX 0x889
  31. CGuiTabbed::CGuiTabbed(void)
  32. {
  33. m_nDif=0;
  34. GuiDrawLayer::m_Style=GUISTYLE_XP;
  35. }
  36. CGuiTabbed::~CGuiTabbed(void)
  37. {
  38. }
  39. void CGuiTabbed::SetExtileExt(ExtTab m_ext)
  40. {
  41. m_ExtTab=m_ext;
  42. if (m_ExtTab == COMBO_TAB)
  43. {
  44. m_comboxBox.ShowWindow(SW_SHOW);
  45. m_toolBtn[0].ShowWindow(SW_HIDE);
  46. m_toolBtn[1].ShowWindow(SW_HIDE);
  47. m_toolBtnC.ShowWindow(SW_HIDE);
  48. m_comboxBox.ResetContent();
  49. for (int iCont=0; iCont< m_Numtabs;iCont++)
  50. {
  51. CGuiTab* ct=(CGuiTab*) m_pArray[iCont];
  52. CRect m_Arect;
  53. m_comboxBox.AddString(ct->lpMsg);
  54. }
  55. m_comboxBox.SetCurSel(0);
  56. }
  57. else
  58. {
  59. m_comboxBox.ShowWindow(SW_HIDE);
  60. m_toolBtn[0].ShowWindow(SW_SHOW);
  61. m_toolBtn[1].ShowWindow(SW_SHOW);
  62. m_toolBtnC.ShowWindow(SW_SHOW);
  63. }
  64. }
  65. void CGuiTabbed::Drawtabs(CDC* dc)
  66. {
  67. if (m_ExtTab == COMBO_TAB)
  68. {
  69. m_comboxBox.MoveWindow(m_rectTab);
  70. return;
  71. }
  72. int m_StrPos=0;
  73. BOOL m_ViewAlltab=TRUE;
  74. CRect m_rClient;
  75. CBrush cbr;
  76. CPen light(PS_SOLID,1,GetSysColor(COLOR_BTNHIGHLIGHT));
  77. CPen Dark(PS_SOLID,1,GuiDrawLayer::GetRGBColorShadow(GuiDrawLayer::m_Style));
  78. CPen Black(PS_SOLID,1,GetSysColor(BLACK_PEN));
  79. CPen pPress(PS_SOLID,1,::GetSysColor(COLOR_HIGHLIGHT));
  80. CRect rectText;
  81. CFont* m_fontOld=dc->SelectObject(&m_cfontBold);
  82. CRect m_rcTabMain;
  83. CSize mszBtn=GetSizeButton();
  84. int m_iSizeButton=mszBtn.cx;
  85. if(GuiDrawLayer::m_Style== GUISTYLE_2003)
  86. {
  87. CGradient M(CSize(m_rectTab.Width(),m_rectTab.Height()+1));
  88. M.PrepareReverseVertTab(dc,GUISTYLE_2003);
  89. M.Draw(dc,0,0,0,0,m_rectTab.Width(),m_rectTab.Height(),SRCCOPY);
  90. m_toolBtn[0].StyleDispl(GuiDrawLayer::m_Style,FALSE);
  91. m_toolBtn[1].StyleDispl(GuiDrawLayer::m_Style,FALSE);
  92. m_toolBtnC.StyleDispl(GuiDrawLayer::m_Style,FALSE);
  93. }
  94. m_rectTab.DeflateRect(1,1);
  95. m_rectTab.bottom+=1;
  96. if(GuiDrawLayer::m_Style== GUISTYLE_XP)
  97. {
  98. m_toolBtn[0].SetColor(GuiDrawLayer::GetRGBColorTabs());
  99. m_toolBtn[1].SetColor(GuiDrawLayer::GetRGBColorTabs());
  100. m_toolBtnC.SetColor(GuiDrawLayer::GetRGBColorTabs());
  101. cbr.CreateSolidBrush(GuiDrawLayer::GetRGBColorTabs());
  102. dc->FillRect(m_rectTab,&cbr);
  103. m_toolBtn[0].StyleDispl(GuiDrawLayer::m_Style);
  104. m_toolBtn[1].StyleDispl(GuiDrawLayer::m_Style);
  105. m_toolBtnC.StyleDispl(GuiDrawLayer::m_Style);
  106. }
  107. m_rectTab.InflateRect(1,1);
  108. CRect rectT=m_rectTab;
  109. rectT.right-=m_iSizeButton+2;
  110. int mSizeTotal=m_iMinValRec;
  111. m_toolBtn[0].EnableWindow(FALSE);
  112. m_toolBtn[1].EnableWindow(FALSE);
  113. if (mSizeTotal > m_rectTab.Width())
  114. {
  115. m_toolBtn[1].EnableWindow(TRUE);
  116. if (m_nDif < 0) 
  117. m_toolBtn[0].EnableWindow(TRUE);
  118. if((mSizeTotal-(abs(m_nDif)-20)) < m_rectTab.Width())
  119. m_toolBtn[1].EnableWindow(FALSE);
  120. }
  121. else
  122. m_nDif=0;
  123. CRect rectScroll; 
  124. CRgn reg;
  125. CRect rectRecorte;
  126. rectRecorte=rectT;
  127. reg.CreateRectRgnIndirect(rectRecorte);
  128. dc->SelectClipRgn(&reg);
  129. int m_right=m_nDif;
  130. for ( int iCont=0; iCont< m_Numtabs;iCont++)
  131. {
  132. CGuiTab* ctb=(CGuiTab*)m_pArray[iCont];
  133. CRect mrt=ctb->rect;
  134. int ancho=mrt.Width();
  135. mrt.left=m_right;
  136. mrt.right=mrt.left+ancho;
  137. CPoint Coor[6];
  138. //si es la carpeta seleccionada, se debe 
  139. //eliminar las lineas oscuras de encima
  140. if (iCont ==m_iSelectTab)
  141. {
  142. if(GuiDrawLayer::m_Style== GUISTYLE_XP)
  143. {
  144. CBrush cbr;
  145. CRect  m_rectTabAux=mrt;
  146. cbr.CreateSysColorBrush(COLOR_BTNFACE);
  147. m_rectTabAux.top+=3;
  148. m_rectTabAux.bottom+=2;
  149. dc->FillRect(m_rectTabAux,&cbr);
  150. CPen* pOldPen=dc->SelectObject(&light);
  151. dc->MoveTo(m_rectTabAux.left,m_rectTabAux.top);
  152. dc->LineTo(m_rectTabAux.left,m_rectTabAux.bottom);
  153. //linea de arriba
  154. dc->MoveTo(m_rectTabAux.left,m_rectTabAux.top);
  155. dc->LineTo(m_rectTabAux.right,m_rectTabAux.top);
  156. //linea derecha observe que se pinta dos veces para
  157. //dar el efecto de redondeada en la puntas
  158. dc->SelectObject(pOldPen);
  159. pOldPen=dc->SelectObject(&Black);
  160. dc->MoveTo(m_rectTabAux.right-1,m_rectTabAux.top+1);
  161. dc->LineTo(m_rectTabAux.right-1,m_rectTabAux.bottom);
  162. dc->SelectObject(pOldPen);
  163. }
  164. if(GuiDrawLayer::m_Style== GUISTYLE_2003)
  165. {
  166. CRect  m_rectTabAux=mrt;
  167. m_rcTabMain=m_rectTabAux;
  168. CGradient M(CSize(m_rectTabAux.Width(),m_rectTabAux.Height()));
  169. M.PrepareTabs(dc,ctb->m_clrLTab,ctb->m_clrHtab);
  170. M.Draw(dc,m_rectTabAux.left-14,m_rectTabAux.bottom+2,0,0,m_rectTabAux.Width(),m_rectTabAux.Height(),SRCCOPY);
  171. M.Draw(dc,m_rectTabAux.left-13,m_rectTabAux.bottom+1,0,0,m_rectTabAux.Width(),m_rectTabAux.Height(),SRCCOPY);
  172. M.Draw(dc,m_rectTabAux.left-12,m_rectTabAux.bottom,0,0,m_rectTabAux.Width(),m_rectTabAux.Height(),SRCCOPY);
  173. M.Draw(dc,m_rectTabAux.left-11,m_rectTabAux.bottom-1,0,0,m_rectTabAux.Width(),m_rectTabAux.Height(),SRCCOPY);
  174. M.Draw(dc,m_rectTabAux.left-10,m_rectTabAux.bottom-2,0,0,m_rectTabAux.Width(),m_rectTabAux.Height(),SRCCOPY);
  175. M.Draw(dc,m_rectTabAux.left-9,m_rectTabAux.bottom-3,0,0,m_rectTabAux.Width(),m_rectTabAux.Height(),SRCCOPY);
  176. M.Draw(dc,m_rectTabAux.left-8,m_rectTabAux.bottom-4,0,0,m_rectTabAux.Width(),m_rectTabAux.Height(),SRCCOPY);
  177. M.Draw(dc,m_rectTabAux.left-7,m_rectTabAux.bottom-5,0,0,m_rectTabAux.Width(),m_rectTabAux.Height(),SRCCOPY);
  178. M.Draw(dc,m_rectTabAux.left-6,m_rectTabAux.bottom-6,0,0,m_rectTabAux.Width(),m_rectTabAux.Height(),SRCCOPY);
  179. M.Draw(dc,m_rectTabAux.left-5,m_rectTabAux.bottom-7,0,0,m_rectTabAux.Width(),m_rectTabAux.Height(),SRCCOPY);
  180. M.Draw(dc,m_rectTabAux.left-4,m_rectTabAux.bottom-8,0,0,m_rectTabAux.Width(),m_rectTabAux.Height(),SRCCOPY);
  181. M.Draw(dc,m_rectTabAux.left-3,m_rectTabAux.bottom-9,0,0,m_rectTabAux.Width(),m_rectTabAux.Height(),SRCCOPY);
  182. M.Draw(dc,m_rectTabAux.left-2,m_rectTabAux.bottom-10,0,0,m_rectTabAux.Width(),m_rectTabAux.Height(),SRCCOPY);
  183. M.Draw(dc,m_rectTabAux.left+1,m_rectTabAux.top+6,0,0,m_rectTabAux.Width(),m_rectTabAux.Height(),SRCCOPY);
  184. M.Draw(dc,m_rectTabAux.left+2,m_rectTabAux.top+5,0,0,m_rectTabAux.Width(),m_rectTabAux.Height(),SRCCOPY);
  185. M.Draw(dc,m_rectTabAux.left+3,m_rectTabAux.top+4,0,0,m_rectTabAux.Width(),m_rectTabAux.Height(),SRCCOPY);
  186. M.Draw(dc,m_rectTabAux.left+4,m_rectTabAux.top+3,0,0,m_rectTabAux.Width(),m_rectTabAux.Height(),SRCCOPY);
  187. CPen* pOldPen=dc->SelectObject(&Dark);
  188. if ( iCont== 0)
  189. dc->MoveTo(m_rectTabAux.left+1, m_rectTabAux.bottom+3);
  190. else
  191. {
  192. dc->MoveTo(m_rectTabAux.left-15, m_rectTabAux.bottom+1);
  193. dc->LineTo(m_rectTabAux.left-13, m_rectTabAux.bottom+1);
  194. dc->MoveTo(m_rectTabAux.left-16, m_rectTabAux.bottom+2);
  195. dc->LineTo(m_rectTab.left, m_rectTabAux.bottom+2);
  196. dc->MoveTo(m_rectTabAux.left-13, m_rectTabAux.bottom+1);
  197. }
  198. dc->LineTo(m_rectTabAux.left+1, m_rectTabAux.top+6);
  199. dc->MoveTo(m_rectTabAux.left+1, m_rectTabAux.top+6);
  200. dc->LineTo(m_rectTabAux.left+6, m_rectTabAux.top+2);
  201. dc->MoveTo(m_rectTabAux.left+6, m_rectTabAux.top+2);
  202. dc->LineTo(m_rectTabAux.right+1, m_rectTabAux.top+2);
  203. dc->MoveTo(m_rectTabAux.right+1, m_rectTabAux.top+2);
  204. dc->LineTo(m_rectTabAux.right+4, m_rectTabAux.top+5);
  205. dc->MoveTo(m_rectTabAux.right+4, m_rectTabAux.top+5);
  206. dc->LineTo(m_rectTabAux.right+4, m_rectTabAux.bottom+3);
  207. //linea desde el punto inferior derecho del tab hasta el final del area de tabs
  208. dc->MoveTo(m_rectTabAux.right+4, m_rectTabAux.bottom+2);
  209. dc->LineTo(m_rectTab.right, m_rectTabAux.bottom+2);
  210. dc->SelectObject(pOldPen);
  211. }
  212. //pDC->TextOut(rCText.left+3,rCText.top,m_caption);
  213. }
  214. else
  215. {
  216. if(GuiDrawLayer::m_Style== GUISTYLE_XP)
  217. {
  218. if ((iCont+1) != m_iSelectTab)
  219. {
  220. CPen* pOldPen=dc->SelectObject(&Dark);
  221. dc->MoveTo(mrt.right-1,mrt.top+3);
  222. dc->LineTo(mrt.right-1,mrt.bottom+1);
  223. dc->SelectObject(pOldPen);
  224. }
  225. }
  226. if(GuiDrawLayer::m_Style== GUISTYLE_2003)
  227. {
  228. CRect  m_rectTabAux=mrt;
  229. CGradient M(CSize(m_rectTabAux.Width(),m_rectTabAux.Height()));
  230. M.PrepareTabs(dc,ctb->m_clrLTab,ctb->m_clrHtab);
  231. if (iCont == 0)
  232. {
  233. M.Draw(dc,m_rectTabAux.left+1,m_rectTabAux.top+6,0,0,m_rectTabAux.Width(),m_rectTabAux.Height()-4,SRCCOPY);
  234. M.Draw(dc,m_rectTabAux.left+2,m_rectTabAux.top+5,0,0,m_rectTabAux.Width(),m_rectTabAux.Height()-4,SRCCOPY);
  235. M.Draw(dc,m_rectTabAux.left+3,m_rectTabAux.top+4,0,0,m_rectTabAux.Width(),m_rectTabAux.Height()-2,SRCCOPY);
  236. M.Draw(dc,m_rectTabAux.left+4,m_rectTabAux.top+3,0,0,m_rectTabAux.Width(),m_rectTabAux.Height()-1,SRCCOPY);
  237. }
  238. else
  239. {
  240. M.Draw(dc,m_rectTabAux.left+6,m_rectTabAux.top+6,0,0,m_rectTabAux.Width(),m_rectTabAux.Height()-4,SRCCOPY);
  241. M.Draw(dc,m_rectTabAux.left+6,m_rectTabAux.top+5,0,0,m_rectTabAux.Width(),m_rectTabAux.Height()-4,SRCCOPY);
  242. M.Draw(dc,m_rectTabAux.left+6,m_rectTabAux.top+4,0,0,m_rectTabAux.Width(),m_rectTabAux.Height()-4,SRCCOPY);
  243. M.Draw(dc,m_rectTabAux.left+6,m_rectTabAux.top+3,0,0,m_rectTabAux.Width(),m_rectTabAux.Height()-4,SRCCOPY);
  244. }
  245. CPen* pOldPen=dc->SelectObject(&Dark);
  246. if (iCont == 0)
  247. {
  248. dc->MoveTo(m_rectTabAux.left+1, m_rectTabAux.bottom+3);
  249. dc->LineTo(m_rectTabAux.left+1, m_rectTabAux.top+6);
  250. dc->MoveTo(m_rectTabAux.left+1, m_rectTabAux.top+6);
  251. dc->LineTo(m_rectTabAux.left+6, m_rectTabAux.top+2);
  252. }
  253. else
  254. {
  255. dc->MoveTo(m_rectTabAux.left+3, m_rectTabAux.top+4);
  256. dc->LineTo(m_rectTabAux.left+6, m_rectTabAux.top+2);
  257. }
  258. dc->MoveTo(m_rectTabAux.left+6, m_rectTabAux.top+2);
  259. dc->LineTo(m_rectTabAux.right+1, m_rectTabAux.top+2);
  260. dc->MoveTo(m_rectTabAux.right+1, m_rectTabAux.top+2);
  261. dc->LineTo(m_rectTabAux.right+4, m_rectTabAux.top+5);
  262. dc->MoveTo(m_rectTabAux.right+4, m_rectTabAux.top+5);
  263. dc->LineTo(m_rectTabAux.right+4, m_rectTabAux.bottom+3);
  264. dc->SelectObject(pOldPen);
  265. }
  266. }
  267. CRect m_rectTabAux= mrt;
  268. m_rectTabAux.top+=4;
  269. m_rectTabAux.left+=4;
  270. int OldMode=dc->SetBkMode(TRANSPARENT);
  271. COLORREF clrtext;
  272. if (iCont !=m_iSelectTab)
  273. {
  274. clrtext=dc->SetTextColor(RGB(0,0,0));
  275. dc->SelectObject(&m_cfont);
  276. }
  277. dc->DrawText(ctb->lpMsg,m_rectTabAux,DT_SINGLELINE|DT_CENTER|DT_VCENTER);
  278. if (iCont !=m_iSelectTab)
  279. {
  280. dc->SetTextColor(clrtext);
  281. dc->SelectObject(&m_cfontBold);
  282. }
  283. m_right=mrt.right;
  284. ctb->rect=mrt;
  285. dc->SetBkMode(OldMode);
  286. }
  287. dc->SelectClipRgn(NULL);
  288. CPen* pOldPen=dc->SelectObject(&pPress);
  289. dc->MoveTo(m_rectTab.right-(m_iSizeButton+2), m_rcTabMain.bottom+2);
  290. dc->LineTo(m_rectTab.right, m_rcTabMain.bottom+2);
  291. dc->SelectObject(pOldPen);
  292. CRect rcCli;
  293. GetClientRect(rcCli);
  294.     rcCli.top=m_rectTab.top;
  295. rcCli.bottom=m_rectTab.bottom;
  296. rcCli.left=rcCli.right-(m_iSizeButton);
  297. int nacum=0;
  298. for (int i=0; i<3;i++)
  299. {
  300. CSize szBtn=m_toolBtn[i].GetSizeButton();
  301. m_toolBtn[i].MoveWindow(rcCli.left+nacum-1,rcCli.top+4,szBtn.cx,rcCli.Height()-6);
  302. nacum+=szBtn.cx;
  303. }
  304. GetClientRect(rcCli);
  305. dc->Draw3dRect(rcCli,GuiDrawLayer::GetRGBColorShadow(),GuiDrawLayer::GetRGBColorShadow());
  306. m_toolBtnC.EnableWindow(TRUE);
  307. cbr.DeleteObject();
  308. dc->SelectObject(m_fontOld);
  309. m_toolBtnC.Invalidate();
  310.     m_toolBtnC.UpdateWindow();
  311. m_toolBtn[0].Invalidate();
  312.     m_toolBtn[0].UpdateWindow();
  313. m_toolBtn[1].Invalidate();
  314.     m_toolBtn[1].UpdateWindow();
  315. }
  316. BEGIN_MESSAGE_MAP(CGuiTabbed, CGuiTabWnd)
  317. ON_WM_CREATE()
  318. ON_WM_SYSCOLORCHANGE()
  319. ON_COMMAND(SCROLLLEFT,OnScrollLeft)
  320. ON_COMMAND(SCROLLRIGHT,OnScrollRight)
  321. ON_COMMAND(SCROLLCLOSE,OnScrollClose)
  322. ON_CBN_SELCHANGE(IDD_COMBOBOX, OnSelchangeCombo1)
  323. END_MESSAGE_MAP()
  324. void CGuiTabbed::OnSelchangeCombo1()
  325. {
  326. SetCurtab(m_comboxBox.GetCurSel());
  327. SendMessage(WM_LBUTTONDOWN);
  328. }
  329. void  CGuiTabbed::OnScrollLeft()
  330. {
  331. m_nDif+=10;
  332. CClientDC dc(this);
  333. Drawtabs(&dc);
  334. //RecalLayout();
  335. }
  336. void  CGuiTabbed::OnScrollRight()
  337. {
  338. m_nDif-=10;
  339. CClientDC dc(this);
  340. Drawtabs(&dc);
  341. //RecalLayout();
  342. }
  343. void  CGuiTabbed::OnScrollClose()
  344. {
  345. //no es nuestro problema lo debe manejar la clase derivada
  346. }
  347. int CGuiTabbed::OnCreate(LPCREATESTRUCT lpCreateStruct)
  348. {
  349. if (CGuiTabWnd::OnCreate(lpCreateStruct) == -1)
  350. return -1;
  351. if (!m_img.Create(IDB_GUI_DOCKBAR,9,11,RGB(255,0,255)))
  352. {
  353. TRACE0("error imagelist");
  354. }
  355. if (!m_comboxBox.Create(WS_CHILD|WS_VISIBLE|CBS_DROPDOWN | 
  356.                     WS_VSCROLL | WS_TABSTOP| CBS_AUTOHSCROLL,CRect(1,1,100,100),this,IDD_COMBOBOX))
  357. m_ExtTab=NORMAL_TAB;
  358. m_comboxBox.ShowWindow(SW_HIDE);
  359. m_toolBtn[0].Create(_T(""),WS_VISIBLE | WS_CHILD | BS_PUSHBUTTON | BS_OWNERDRAW,CRect(0,0,0,0),this,SCROLLLEFT);
  360. // m_toolBtn[0].SetStyleButton(CGuiNormalButton::STL_FLAT);
  361. m_toolBtn[0].SetToolTip("Scroll Left");
  362. m_toolBtn[0].SethIcon(m_img.ExtractIcon(4));
  363. m_toolBtn[0].SetColor(GuiDrawLayer::GetRGBColorTabs());
  364. m_toolBtn[0].ShowDark(FALSE);
  365. m_toolBtn[1].Create(_T(""),WS_VISIBLE | WS_CHILD | BS_PUSHBUTTON | BS_OWNERDRAW,CRect(0,0,0,0),this,SCROLLRIGHT);
  366. // m_toolBtn[1].SetStyleButton(CGuiNormalButton::STL_FLAT);
  367. m_toolBtn[1].SetToolTip("Scroll Right");
  368. m_toolBtn[1].SethIcon(m_img.ExtractIcon(2));
  369. m_toolBtn[1].SetColor(GuiDrawLayer::GetRGBColorTabs());
  370. m_toolBtn[1].ShowDark(FALSE);
  371. m_toolBtnC.Create(_T(""),WS_VISIBLE | WS_CHILD | BS_PUSHBUTTON | BS_OWNERDRAW,CRect(0,0,0,0),this,SCROLLCLOSE);
  372. // m_toolBtnC.SetStyleButton(CGuiNormalButton::STL_FLAT);
  373. m_toolBtnC.SetToolTip("Close");
  374. m_toolBtnC.SethIcon(m_img.ExtractIcon(10));
  375. // m_toolBtnC.SetColor(GuiDrawLayer::GetRGBColorTabs());
  376. m_toolBtnC.ShowDark(FALSE);
  377. m_toolBtn[0].EnableWindow(FALSE);
  378. m_toolBtn[1].EnableWindow(FALSE);
  379. SetALingTabs(CGuiTabWnd::ALN_TOP); //los tabs arriba
  380. SetStyle(CGuiTabWnd::SHADOW);    //no debe acondicionar el tama駉 de los tabs return 0;
  381. SetTypeTab(CGuiTabWnd::TYPE_MDI);
  382. SetActualTitle(FALSE);
  383. return 0;
  384. }
  385. CSize CGuiTabbed::GetSizeButton()
  386. {
  387. CSize szresult=CSize(0,0);
  388. for (int i=0; i < 3; i++)
  389. {
  390. CSize sztemp=m_toolBtn[i].GetSizeButton();
  391. szresult.cx+=sztemp.cx;
  392. szresult.cy+=sztemp.cy;
  393. }
  394. return szresult;
  395. }
  396. void CGuiTabbed::OnSysColorChange() 
  397. {
  398. CGuiTabWnd::OnSysColorChange();
  399. /* m_toolBtn[0].SetColor(GuiDrawLayer::GetRGBColorTabs());
  400. m_toolBtn[1].SetColor(GuiDrawLayer::GetRGBColorTabs());
  401. m_toolBtn[2].SetColor(GuiDrawLayer::GetRGBColorTabs());
  402. */ m_toolBtn[0].Invalidate();
  403.     m_toolBtn[0].UpdateWindow();
  404. m_toolBtn[1].Invalidate();
  405.     m_toolBtn[1].UpdateWindow();
  406. m_toolBtn[2].Invalidate();
  407.     m_toolBtn[2].UpdateWindow();
  408. Invalidate ();
  409. UpdateWindow ();
  410. }
  411. /*BOOL CGuiTabbed::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult)
  412. {
  413. // TODO: Add your specialized code here and/or call the base class
  414. CWnd* pParent= GetParent();
  415. if (pParent->GetSafeHwnd())
  416. pParent->SendMessage(WM_NOTIFY, wParam, lParam);
  417. return TRUE;
  418. }*/