⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zx1.c

📁 大屏幕显示时钟程序
💻 C
字号:
#if !defined(AFX_GRIBBLEWND_H__6E1D4ED1_D9A6_11D4_9B9F_525400DAE6A0__INCLUDED_)
  #define AFX_GRIBBLEWND_H__6E1D4ED1_D9A6_11D4_9B9F_525400DAE6A0__INCLUDED_
  #if _MSC_VER > 1000
  #pragma once
  #endif // _MSC_VER > 1000
  class CGribbleWnd : public CWnd
  {
   // Construction
   public:
  CGribbleWnd();
  // Attributes
   public:
  // screen stuff
  int m_pixelsX;//存放屏幕的宽度;
  int m_pixelsY;//存放屏幕的高度;
  CDC* m_pDC;//设备上下文对象;
  HCURSOR m_hCursor; //光标句柄;
  COLORREF m_backColor; //颜色对象,用来存放用户自定义的颜色;
  // Operations
  // Overrides
  // ClassWizard generated virtual function overrides
  //{{AFX_VIRTUAL(CGribbleWnd)
  //}}AFX_VIRTUAL
  // Implementation
  virtual ~CGribbleWnd();
  // Generated message map functions
   protected:
  //{{AFX_MSG(CGribbleWnd)
  afx_msg BOOL OnEraseBkgnd(CDC* pDC);
  afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
  afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
  afx_msg void OnPaint();
  afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
  //}}AFX_MSG
  DECLARE_MESSAGE_MAP()
  };
   //{{AFX_INSERT_LOCATION}}
  #endif // !defined(AFX_GRIBBLEWND_H__6E1D4ED1_D9A6_11D4_9B9F_525400DAE6A0__INCLUDED_)
  /////////////////////////////////////////////////////// CGribleWnd类的实现文件;
  #include "stdafx.h"
  #include "GribbleWnd.h"
  #include 
  #ifdef _DEBUG
  #define new DEBUG_NEW
  #undef THIS_FILE
  static char THIS_FILE[] = __FILE__;
  #endif
  CGribbleWnd::CGribbleWnd()//构造函数;
  {
  }
  CGribbleWnd::~CGribbleWnd()//析构函数;
  {
  }
  BEGIN_MESSAGE_MAP(CGribbleWnd, CWnd)
  //{{AFX_MSG_MAP(CGribbleWnd)
  ON_WM_ERASEBKGND()
  ON_WM_CREATE()
  ON_WM_LBUTTONDOWN()
  ON_WM_PAINT()
  ON_WM_KEYDOWN()
  ON_WM_TIMER()
  //}}AFX_MSG_MAP
  END_MESSAGE_MAP()
  BOOL CGribbleWnd::OnEraseBkgnd(CDC* pDC) //重画背景窗口的背景;
  {
   m_backColor = RGB(125,200,125);//自定义颜色;
   //生成一个新的画刷,用自定义的颜色刷新显示区域;
   CBrush cb(m_backColor);
   HBRUSH hOldBrush = (HBRUSH)pDC->SelectObject(cb);
   RECT rect = {0,0,m_pixelsX,m_pixelsY};
   pDC->FillRect(&rect,&cb);
   pDC->SelectObject(hOldBrush);
   cb.DeleteObject();
   return TRUE;
  }
  int CGribbleWnd::OnCreate(LPCREATESTRUCT lpCreateStruct) //创建窗口;
  {
   if (CWnd::OnCreate(lpCreateStruct) == -1)
  return -1;
  // TODO: Add your specialized creation code here
   m_hCursor =LoadCursor(NULL,IDC_ARROW); //装载鼠标,用来与用户交互;
   SetCursor(m_hCursor);//将装载的鼠标附给生成的窗体;
   ShowCursor(true);//显示鼠标;
   m_pDC = GetDC();//得到当前窗体的设备上下文对象;
   
   m_pixelsX = m_pDC->GetDeviceCaps(HORZRES);//获取屏幕的宽度;
   m_pixelsY = m_pDC->GetDeviceCaps(VERTRES);//获取屏幕的高度;
   MoveWindow(0,0,m_pixelsX, m_pixelsY);//将当前窗口全屏幕显示;
   return 0;
  }
  void CGribbleWnd::OnLButtonDown(UINT nFlags, CPoint point) //响应用户的鼠标单击操作;
  {
   Invalidate();//重画窗口;
  }
  void CGribbleWnd::OnPaint() //实现具体的显示效果,本例用来显示数学曲线;
  {
   CPaintDC dc(this); //得到设备上下文对象;
   //下面的代码用来实现显示数学曲线;
   static int s_nLisXCoef = 1;
   static int s_nLisYCoef = 3;
   static int s_nLisYOffset = 44;
   ++s_nLisXCoef;
   ++s_nLisYCoef;
   int x,y;
   for (float t = 0; t < 32767; t+=0.2) {
  x = sin(s_nLisXCoef*t) * m_pixelsX/2 + m_pixelsX/2;
  y = sin(s_nLisYCoef*t+s_nLisYOffset) * m_pixelsY/2 + m_pixelsY/2;
  dc.SetPixel(x, y, RGB(255,80,255));
   }
  }
//响应用户的按键操作,当用户按下ESC(退出)键后,程序恢复正常显示;
  void CGribbleWnd::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) 
  {
   if(VK_ESCAPE == nChar)//判断当前按下的键是否为"ESC"
  DestroyWindow();//销毁当前窗体;
  CWnd::OnKeyDown(nChar, nRepCnt, nFlags);
   }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -