ModuleLogo.cpp
上传用户:yatsl7111
上传日期:2007-01-08
资源大小:1433k
文件大小:2k
源码类别:

图形图象

开发平台:

Visual C++

  1. #include "StdAfx.h"
  2. #include "ModuleLogo.h"
  3. /////////////////////////////////////////////////////////////////////////////
  4. // CModuleLogo
  5. CModuleLogo::CModuleLogo()
  6. {
  7. CModuleLogo::RegisterWndClass(AfxGetInstanceHandle());
  8. }
  9. CModuleLogo::~CModuleLogo()
  10. {
  11. }
  12. BEGIN_MESSAGE_MAP(CModuleLogo, CStatic)
  13. //{{AFX_MSG_MAP(CModuleLogo)
  14. ON_WM_PAINT()
  15. //}}AFX_MSG_MAP
  16. END_MESSAGE_MAP()
  17. /////////////////////////////////////////////////////////////////////////////
  18. // CModuleLogo message handlers
  19. void CModuleLogo::OnPaint() 
  20. {
  21. CPaintDC dc(this); // device context for painting
  22. // TODO: Add your message handler code here
  23. if(m_LogoText.IsEmpty())
  24. return;
  25. dc.SetBkMode(TRANSPARENT);
  26. CRect rectText;
  27. rectText.left = 10;
  28. rectText.top = 0;
  29. rectText.bottom = 35;
  30. rectText.right = 155;
  31. CFont * OldFont = dc.SelectObject(&m_fontLogo);
  32. // draw text in DC
  33. COLORREF OldColor = dc.SetTextColor( ::GetSysColor( COLOR_3DHILIGHT));
  34. dc.DrawText( m_LogoText, rectText + CPoint(1,1), DT_SINGLELINE | DT_LEFT | DT_VCENTER);
  35. dc.SetTextColor( ::GetSysColor( COLOR_3DSHADOW));
  36. dc.DrawText( m_LogoText, rectText, DT_SINGLELINE | DT_LEFT | DT_VCENTER);
  37. // restore old text color
  38. dc.SetTextColor( OldColor);
  39. // restore old font
  40. dc.SelectObject(OldFont);
  41. // Do not call CDialog::OnPaint() for painting messages
  42. }
  43. void CModuleLogo::SetLogoFont(CString Name, int nHeight, int nWeight, BYTE bItalic, BYTE bUnderline)
  44. {
  45. if(m_fontLogo.m_hObject)
  46. m_fontLogo.Detach();
  47. m_fontLogo.CreateFont(nHeight, 0, 0, 0, nWeight, bItalic, bUnderline,0,0,0,0,0,0, Name);
  48. }
  49. void CModuleLogo::SetLogoText(CString Text)
  50. {
  51. m_LogoText = Text;
  52. }
  53. BOOL CModuleLogo::RegisterWndClass(HINSTANCE hInstance)
  54. {
  55. WNDCLASS wc;
  56. wc.lpszClassName = "MODULELOGO_CTRL"; // matches class name in client
  57. wc.hInstance = hInstance;
  58. wc.lpfnWndProc = ::DefWindowProc;
  59. wc.hCursor = ::LoadCursor(NULL, IDC_ARROW);
  60. wc.hIcon = 0;
  61. wc.lpszMenuName = NULL;
  62. wc.hbrBackground = (HBRUSH) ::GetStockObject(NULL_BRUSH);
  63. wc.style = CS_GLOBALCLASS; // To be modified
  64. wc.cbClsExtra = 0;
  65. wc.cbWndExtra = 0;
  66. return (::RegisterClass(&wc) != 0);
  67. }