ViewOutlook.cpp
上传用户:szcysw
上传日期:2013-03-11
资源大小:6752k
文件大小:4k
源码类别:

界面编程

开发平台:

Visual C++

  1. // ViewOutlook.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "ViewOutlook.h"
  5. #ifdef _DEBUG
  6. #define new DEBUG_NEW
  7. #undef THIS_FILE
  8. static char THIS_FILE[] = __FILE__;
  9. #endif
  10. /////////////////////////////////////////////////////////////////////////////
  11. // CViewOutlook
  12. IMPLEMENT_DYNCREATE(CViewOutlook, CView)
  13. CViewOutlook::CViewOutlook()
  14. {
  15. }
  16. CViewOutlook::~CViewOutlook()
  17. {
  18. }
  19. BEGIN_MESSAGE_MAP(CViewOutlook, CView)
  20. //{{AFX_MSG_MAP(CViewOutlook)
  21. ON_WM_CREATE()
  22. ON_WM_SIZE()
  23. ON_WM_ERASEBKGND()
  24. ON_WM_CTLCOLOR_REFLECT()
  25. //}}AFX_MSG_MAP
  26. ON_MESSAGE( OBN_SELENDOK,  OnSelEndOK )
  27. END_MESSAGE_MAP()
  28. /////////////////////////////////////////////////////////////////////////////
  29. // CViewOutlook drawing
  30. void CViewOutlook::OnDraw(CDC* pDC)
  31. {
  32. CDocument* pDoc = GetDocument();
  33. // TODO: add draw code here
  34. }
  35. /////////////////////////////////////////////////////////////////////////////
  36. // CViewOutlook diagnostics
  37. #ifdef _DEBUG
  38. void CViewOutlook::AssertValid() const
  39. {
  40. CView::AssertValid();
  41. }
  42. void CViewOutlook::Dump(CDumpContext& dc) const
  43. {
  44. CView::Dump(dc);
  45. }
  46. #endif //_DEBUG
  47. /////////////////////////////////////////////////////////////////////////////
  48. // CViewOutlook message handlers
  49. #include "resource.h"
  50. static UINT Icons[] =
  51. {
  52. IDI_ICON_OUTLOOK,
  53. IDI_ICON_INBOX,
  54. IDI_ICON_CALENDAR,
  55. IDI_ICON_CONTACTS,
  56. IDI_ICON_TASKS,
  57. IDI_ICON_JOURNAL,
  58. IDI_ICON_NOTES,
  59. IDI_ICON_DELETED,
  60. IDI_ICON_PUBLIC,
  61. IDI_ICON_DRAFTS,
  62. IDI_ICON_OUTBOX,
  63. IDI_ICON_SENT,
  64. };
  65. static LPCTSTR Title[] =
  66. {
  67. _T("今日"),
  68. _T("收件箱"),
  69. _T("日历"),
  70. _T("联系人"),
  71. _T("任务"),
  72. _T("安排"),
  73. _T("便笺"),
  74. _T("已删除"),
  75. _T("公用"),
  76. _T("草稿"),
  77. _T("发件箱"),
  78. _T("发送"),
  79. };
  80. CContentItems ContentInfo[] =
  81. {
  82. CContentItems ( 0, Title[ 0]),
  83. CContentItems ( 1, Title[ 1]),
  84. CContentItems ( 2, Title[ 2]),
  85. CContentItems ( 3, Title[ 3]),
  86. CContentItems ( 4, Title[ 4]),
  87. CContentItems ( 5, Title[ 5]),
  88. CContentItems ( 6, Title[ 6]),
  89. CContentItems ( 7, Title[ 7]),
  90. CContentItems ( 8, Title[ 8]),
  91. CContentItems ( 9, Title[ 9]),
  92. CContentItems (10, Title[10]),
  93. CContentItems (11, Title[11]),
  94. };
  95. int CViewOutlook::OnCreate(LPCREATESTRUCT lpCreateStruct) 
  96. if (CView::OnCreate(lpCreateStruct) == -1)
  97. return -1;
  98. //建立翻页箭头
  99. if (!m_Pager.Create(WS_CHILD|WS_VISIBLE|PGS_VERT,
  100. CRect(0,0,0,0), this, IDC_STATIC ))
  101. {
  102. TRACE0("建立翻页箭头出错n");
  103. return -1;
  104. }
  105. //设置列表框控件布局风格
  106. DWORD dwStyle = WS_CHILD | WS_VISIBLE | LBS_OWNERDRAWVARIABLE | 
  107. LBS_NOINTEGRALHEIGHT | WS_TABSTOP;
  108. //建立列表框控件,设定其父窗口为建立翻页箭头
  109. if (!m_OutlookBar.Create( dwStyle, CRect(0,0,0,0),
  110. &m_Pager, IDC_OUTBAR ))
  111. {
  112. TRACE0("建立列表框控件出错n");
  113. return -1;
  114. }
  115. int nArraySize = sizeof(Icons)/sizeof(Icons[0]);
  116. //将列表框控件与视图关联
  117. m_OutlookBar.SetOwner (this);
  118. // 设置建立翻页箭头的滚动区间
  119. // 12*图标高
  120. m_Pager.SetScrollArea( NULL, nArraySize*OB_CYBUTTON );
  121. // 设置建立翻页箭头的滚动区间
  122. m_Pager.SetChild(m_OutlookBar.GetSafeHwnd());
  123. m_Pager.SetButtonSize(15);
  124. //建立图像列表并追加图标
  125. m_ImageList.Create (32, 32, TRUE, 2, 1);
  126. for (int i =0; i < nArraySize; ++i) {
  127. m_ImageList.Add(AfxGetApp()->LoadIcon(Icons[i]));
  128. }
  129. //设置图像列表
  130. m_OutlookBar.SetImageLists(&m_ImageList, &m_ImageList);
  131. //设置按钮项目
  132. m_OutlookBar.SetItems(ContentInfo, nArraySize);
  133. return 0;
  134. }
  135. void CViewOutlook::OnSize(UINT nType, int cx, int cy) 
  136. {
  137. CView::OnSize(nType, cx, cy);
  138. if(m_Pager.GetSafeHwnd())
  139. {
  140. //显示翻页箭头
  141. m_Pager.MoveWindow(0,0,cx,cy-2);
  142. }
  143. }
  144. void CViewOutlook::OnSelEndOK(UINT lParam, LONG wParam)
  145. {
  146. UINT uIndex = lParam; 
  147. //根据按钮的ID值进行消息响应
  148. switch( wParam )
  149. {
  150. case IDC_OUTBAR:
  151. AfxMessageBox(Title[uIndex]);
  152. break;
  153. }
  154. }
  155. BOOL CViewOutlook::OnEraseBkgnd(CDC* pDC) 
  156. {
  157. //不进行默认的处理
  158. return 1;
  159. }
  160. HBRUSH CViewOutlook::CtlColor(CDC* pDC, UINT nCtlColor)
  161. {
  162. CBrush m_brHollow;
  163. m_brHollow.CreateStockObject(NULL_BRUSH);
  164. //NULL_BRUSH:不进行默认的处理
  165. return m_brHollow;
  166. }