TabCtrlDlg.cpp 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218
  1. // TabCtrlDlg.cpp : 实现文件
  2. //
  3. #include "stdafx.h"
  4. #include "TabCtrlDlg.h"
  5. #include "Resource.h"
  6. // CTabCtrlDlg 对话框
  7. IMPLEMENT_DYNAMIC(CTabCtrlDlg, CDlgControlItem)
  8. CTabCtrlDlg::CTabCtrlDlg(CWnd* pParent /*=NULL*/)
  9. : CDlgControlItem(IDD_TAB, pParent)
  10. {
  11. }
  12. CTabCtrlDlg::~CTabCtrlDlg()
  13. {
  14. }
  15. void CTabCtrlDlg::DoDataExchange(CDataExchange* pDX)
  16. {
  17. CDlgControlItem::DoDataExchange(pDX);
  18. DDX_Control(pDX,IDC_TAB1,m_TabCtrl);
  19. DDX_Control(pDX,IDC_TAB2,m_TabCtrl1);
  20. DDX_Control(pDX,IDC_TAB3,m_TabCtrl2);
  21. DDX_Control(pDX,IDC_TAB4,m_TabCtrl3);
  22. DDX_Control(pDX,IDC_TAB5,m_TabCtrl4);
  23. }
  24. BEGIN_MESSAGE_MAP(CTabCtrlDlg, CDlgControlItem)
  25. ON_NOTIFY(TCN_SELCHANGE, IDC_TAB1, &CTabCtrlDlg::OnTcnSelchangeTab1)
  26. ON_NOTIFY(TCN_DROPDOWN, IDC_TAB5, &CTabCtrlDlg::OnTcnDropDownTab1)
  27. END_MESSAGE_MAP()
  28. // CTabCtrlDlg 消息处理程序
  29. BOOL CTabCtrlDlg::OnInitDialog()
  30. {
  31. CDlgControlItem::OnInitDialog();
  32. CString str;
  33. for (int i=0;i<15;i++)
  34. {
  35. str.Format(TEXT("Item%d"),i);
  36. m_TabCtrl.InsertItem(i,str);
  37. m_TabCtrl1.InsertItem(i,str);
  38. m_TabCtrl2.InsertItem(i,str);
  39. }
  40. InitQQTabCtrl();
  41. InitQQSafeTabCtrl();
  42. TCHAR szWorkDirectory[MAX_PATH]={0};
  43. RenderEngine->GetWorkDirectory(szWorkDirectory,MAX_PATH);
  44. StrCat(szWorkDirectory,TEXT("\\Res\\main.jpg"));
  45. m_ImageBack.LoadImage(szWorkDirectory);
  46. return TRUE; // return TRUE unless you set the focus to a control
  47. // 异常: OCX 属性页应返回 FALSE
  48. }
  49. void CTabCtrlDlg::OnTcnSelchangeTab1(NMHDR *pNMHDR, LRESULT *pResult)
  50. {
  51. switch ( m_TabCtrl.GetCurSel())
  52. {
  53. case 0:
  54. {
  55. AfxMessageBox(TEXT("Item1被选中"));
  56. break;
  57. }
  58. case 1:
  59. {
  60. AfxMessageBox(TEXT("Item2被选中"));
  61. break;
  62. }
  63. }
  64. *pResult = 0;
  65. }
  66. BOOL CTabCtrlDlg::InitQQTabCtrl()
  67. {
  68. int nIndex = m_TabCtrl4.AddItem(0, STCI_STYLE_DROPDOWN);
  69. m_TabCtrl4.SetItemToolTipText(nIndex, TEXT("联系人"));
  70. m_TabCtrl4.SetItemIconImage(nIndex, TEXT("Res\\TabCtrl\\icon_contacts_normal.png"),
  71. TEXT("Res\\TabCtrl\\icon_contacts_selected.png"));
  72. nIndex = m_TabCtrl4.AddItem(1, STCI_STYLE_DROPDOWN);
  73. m_TabCtrl4.SetItemToolTipText(nIndex, TEXT("朋友"));
  74. m_TabCtrl4.SetItemIconImage(nIndex, TEXT("Res\\TabCtrl\\FriendSocial_TabBtn_Normal.png"),
  75. TEXT("Res\\TabCtrl\\FriendSocial_TabBtn_Focus.png"));
  76. nIndex = m_TabCtrl4.AddItem(2, STCI_STYLE_DROPDOWN);
  77. m_TabCtrl4.SetItemToolTipText(nIndex, TEXT("群/讨论组"));
  78. m_TabCtrl4.SetItemIconImage(nIndex, TEXT("Res\\TabCtrl\\icon_group_normal.png"),
  79. TEXT("Res\\TabCtrl\\icon_group_selected.png"));
  80. nIndex = m_TabCtrl4.AddItem(3, STCI_STYLE_BUTTON);
  81. m_TabCtrl4.SetItemToolTipText(nIndex, TEXT("微博"));
  82. m_TabCtrl4.SetItemIconImage(nIndex, TEXT("Res\\TabCtrl\\WBlog_TabBtn_Normal_Msg.png"),
  83. TEXT("Res\\TabCtrl\\WBlog_TabBtn_Focus.png"));
  84. nIndex = m_TabCtrl4.AddItem(4, STCI_STYLE_DROPDOWN);
  85. m_TabCtrl4.SetItemToolTipText(nIndex, TEXT("最近联系人"));
  86. m_TabCtrl4.SetItemIconImage(nIndex, TEXT("Res\\TabCtrl\\icon_last_normal.png"),
  87. TEXT("Res\\TabCtrl\\icon_last_selected.png"));
  88. m_TabCtrl4.SetBackImage(TEXT("Res\\TabCtrl\\main_tab_bkg.png"), CRect(5,1,5,1));
  89. m_TabCtrl4.SetItemsImage(NULL, TEXT("Res\\TabCtrl\\main_tab_highlight.png"),
  90. TEXT("Res\\TabCtrl\\main_tab_check.png"), CRect(5,1,5,1));
  91. m_TabCtrl4.SetItemsArrowImage(TEXT("Res\\TabCtrl\\main_tabbtn_highlight.png"),
  92. TEXT("Res\\TabCtrl\\main_tabbtn_down.png"));
  93. m_TabCtrl4.SetParentBack(GetBackDC());
  94. m_TabCtrl4.SetItemSize(CSize(75,35),&CSize(56,19));
  95. m_TabCtrl4.SetWindowPos(NULL,0,0,380,35,SWP_NOMOVE);
  96. m_TabCtrl4.SetCurSel(0);
  97. return TRUE;
  98. }
  99. BOOL CTabCtrlDlg::InitQQSafeTabCtrl()
  100. {
  101. m_TabCtrl3.SetParentBack(GetBackDC());
  102. for (int i=0;i<3;i++)
  103. {
  104. m_TabCtrl3.AddItem(i);
  105. }
  106. m_TabCtrl3.m_colNormalText = RGB(255,255,255);
  107. static CFont font;
  108. font.CreateFont(20,0,0,0,FW_BOLD,0,FALSE,0,0,0,0,0,0,TEXT("微软雅黑"));
  109. m_TabCtrl3.SetCtrlFont(font);
  110. m_TabCtrl3.SetItemSize(CSize(120,45));
  111. m_TabCtrl3.SetItemText(0,TEXT("首页"));
  112. m_TabCtrl3.SetItemText(1,TEXT("杀毒"));
  113. m_TabCtrl3.SetItemText(2,TEXT("清理垃圾"));
  114. m_TabCtrl3.SetItemIconImage(0, TEXT("Res\\TabCtrl\\plugin_87.png"),
  115. TEXT("Res\\TabCtrl\\plugin_87.png"));
  116. m_TabCtrl3.SetItemIconImage(1, TEXT("Res\\TabCtrl\\plugin_706.png"),
  117. TEXT("Res\\TabCtrl\\plugin_706.png"));
  118. m_TabCtrl3.SetItemIconImage(2, TEXT("Res\\TabCtrl\\plugin_2061.png"),
  119. TEXT("Res\\TabCtrl\\plugin_2061.png"));
  120. m_TabCtrl3.SetBackImage(TEXT("Res\\TabCtrl\\back.png"),&CRect(2,2,2,2));
  121. m_TabCtrl3.SetItemsImage(NULL,TEXT("Res\\TabCtrl\\Hoven.png"),TEXT("Res\\TabCtrl\\down.png"),&CRect(2,2,2,2));
  122. //m_TabCtrl3.SetLeftTop(10,10);
  123. m_TabCtrl3.SetCurSel(0);
  124. m_TabCtrl3.SetWindowPos(NULL,0,0,363,45,SWP_NOMOVE);
  125. return TRUE;
  126. }
  127. void CTabCtrlDlg::DrawClientArea( CDC*pDC,int nWidth,int nHeight )
  128. {
  129. m_ImageBack.DrawImage(pDC,0,0,nWidth,nHeight);
  130. }
  131. void CTabCtrlDlg::OnTcnDropDownTab1( NMHDR *pNMHDR, LRESULT *pResult )
  132. {
  133. CMenu menu;
  134. if (menu.CreatePopupMenu()==FALSE) return;
  135. switch ( m_TabCtrl4.GetCurSel() )
  136. {
  137. case 0:
  138. {
  139. menu.AppendMenu(0,2000,TEXT("头像显示"));
  140. menu.AppendMenu(0,2001,TEXT("名称显示"));
  141. menu.AppendMenu(0,2002,TEXT("列表显示"));
  142. }
  143. break;
  144. case 1:
  145. {
  146. menu.AppendMenu(0,2000,TEXT("访问朋友网"));
  147. menu.AppendMenu(0,2001,TEXT("显示QQ号"));
  148. menu.AppendMenu(0,2002,TEXT("显示信息"));
  149. }
  150. break;
  151. case 2:
  152. {
  153. menu.AppendMenu(0,2000,TEXT("图标显示"));
  154. menu.AppendMenu(0,2001,TEXT("列表显示"));
  155. menu.AppendMenu(0,2002,TEXT("访问QQ群官网"));
  156. }
  157. break;
  158. case 4:
  159. {
  160. menu.AppendMenu(0,2000,TEXT("漫游会话列表"));
  161. menu.AppendMenu(0,2001,TEXT("清空会话列表"));
  162. }
  163. break;
  164. }
  165. CPoint pt;
  166. GetCursorPos(&pt);
  167. CRect rcControl;
  168. m_TabCtrl4.GetWindowRect(rcControl);
  169. menu.TrackPopupMenu(TPM_LEFTALIGN|TPM_LEFTBUTTON,pt.x,rcControl.bottom+3,this);
  170. }