当前位置: 首页 > news >正文

做网贷网站微站网站

做网贷网站,微站网站,知名设计公司网站,张掖建设局网站关注公号【逆向通信猿】更精彩#xff01;#xff01;#xff01; 第22天 GDI算法实战 CDC(HDC)绘图类#xff1a; 五大GDI对象类#xff1a;CPen#xff0c;CBrush#xff0c;CFont#xff0c;CBitmap#xff0c;CRgn 22.1 走马灯 设置定时器 SetTimer(1, 20, N…关注公号【逆向通信猿】更精彩 第22天 GDI算法实战 CDC(HDC)绘图类 五大GDI对象类CPenCBrushCFontCBitmapCRgn 22.1 走马灯 设置定时器 SetTimer(1, 20, NULL);a)用窗口滚动来实现一种思路 //pLamp-ScrollWindow(-2,0); // this -ScrollWindow(-2, 0);正确代码 void ClampDlg::OnTimer(UINT_PTR nIDEvent) {CWnd* pLamp GetDlgItem(IDC_LAMP);CRect rect,rt;GetClientRect(rt);pLamp-GetWindowRect(rect);ScreenToClient(rect);rect.OffsetRect(-2, 0);if (rect.right 0)rect.OffsetRect(rt.Width() - rect.left,0);//rect.OffsetRect(rt.Width() rect.Width(), 0);pLamp-MoveWindow(rect);CDialogEx::OnTimer(nIDEvent); }b)用CDC来实现 ①临时DC——ClientDC m_szText _T(本文内容已由机器翻译。如果您连接了 Internet请选择“联机查看本主题”以在可编辑模式下对照英文内容查看此页。);BOOL ClampDlg::OnInitDialog() {CDialogEx::OnInitDialog();CRect rect,rt;GetClientRect(rt);m_nLeft rt.right;SetTimer(1, 20, NULL);//return TRUE; // 除非将焦点设置到控件否则返回 TRUE }void ClampDlg::OnTimer(UINT_PTR nIDEvent) {CRect rect, rt;CClientDC dc(this);dc.SetBkColor(GetSysColor(COLOR_3DFACE));//dc.SetBkMode(TRANSPARENT);GetClientRect(rt);dc.SelectObject(GetFont());CSize size dc.GetOutputTextExtent(m_szText);dc.TextOut(m_nLeft, rt.Height()-size.cy, m_szText);m_nLeft - 1;if (m_nLeft size.cx 0)m_nLeft rt.right;CDialogEx::OnTimer(nIDEvent); }void ClampDlg::OnTimer(UINT_PTR nIDEvent) {CRect rect, rt;CClientDC dc(this);dc.SetBkColor(GetSysColor(COLOR_3DFACE));//dc.SetBkMode(TRANSPARENT);GetClientRect(rt);dc.SelectObject(GetFont());CSize size dc.GetOutputTextExtent(m_szText);dc.TextOut(m_nLeft, rt.Height()-size.cy, m_szText);m_nLeft - 1;if (m_nLeft size.cx 0)m_nLeft rt.right;CDialogEx::OnTimer(nIDEvent); }②创建控件在OnTimer中绘图 添加MFC类 class CLampCtrl : public CWnd {DECLARE_DYNAMIC(CLampCtrl)COLORREF m_clText, m_clBack;CFont m_font; // CFont *m_pFont;//pFont -GetLogFont(lf) m_font.CreateIndirect(lf);CString m_szText;int m_nLeft; public:void SetFont(CFont* pFont);void SetText(LPCTSTR sText){m_szText sText;}void SetTextColor(COLORREF clText){m_clText clText;}void SetBkColor(COLORREF clBack){m_clBack clBack;}void Start(){SetTimer(1, 16, NULL);}void Pause(){KillTimer(1);}void Reset();BOOL Create(LPCTSTR sText, CRect rect, CWnd* pParent, UINT nID);BOOL CreateEx(DWORD dwStyleEx,LPCTSTR sText, CRect rect, CWnd* pParent, UINT nID);CLampCtrl();virtual ~CLampCtrl();protected:DECLARE_MESSAGE_MAP() public:afx_msg void OnPaint();afx_msg void OnTimer(UINT_PTR nIDEvent);afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); };CLampCtrl::CLampCtrl() {m_clBack GetSysColor(COLOR_BTNFACE);m_clText GetSysColor(COLOR_WINDOWTEXT); }CLampCtrl::~CLampCtrl() { }BEGIN_MESSAGE_MAP(CLampCtrl, CWnd)ON_WM_PAINT()ON_WM_TIMER()ON_WM_CREATE() END_MESSAGE_MAP()void CLampCtrl::SetFont(CFont * pFont) {if (!pFont)return;LOGFONT lf;pFont-GetLogFont(lf);m_font.CreateFontIndirect(lf); }void CLampCtrl::Reset() { }BOOL CLampCtrl::Create(LPCTSTR sText, CRect rect, CWnd* pParent, UINT nID) {m_szText sText;return CWnd::Create(NULL, NULL, WS_CHILD | WS_VISIBLE, rect, pParent, nID); }BOOL CLampCtrl::CreateEx(DWORD dwStyleEx, LPCTSTR sText, CRect rect, CWnd * pParent, UINT nID) {m_szText sText;return CWnd::CreateEx(dwStyleEx,NULL, NULL, WS_CHILD | WS_VISIBLE, rect, pParent, nID); }// CLampCtrl 消息处理程序void CLampCtrl::OnPaint() {CPaintDC dc(this); // device context for paintingCRect rect;GetClientRect(rect);dc.FillSolidRect(rect, RGB(0, 255, 255)); }void CLampCtrl::OnTimer(UINT_PTR nIDEvent) {CRect rect, rt;GetClientRect(rt);CClientDC dc(this);if ((HFONT)m_font)dc.SelectObject(m_font);dc.FillSolidRect(rt, m_clBack);dc.SetBkMode(TRANSPARENT); // dc.SetBkColor(m_clBack);dc.SetTextColor(m_clText);//dc.SetBkMode(TRANSPARENT);dc.SelectObject(GetFont());CSize size dc.GetOutputTextExtent(m_szText); // dc.TextOut(m_nLeft, 0, m_szText);rect rt;rect.left m_nLeft;dc.DrawText(m_szText, rect, DT_VCENTER | DT_SINGLELINE);m_nLeft - 1;if (m_nLeft size.cx 0)m_nLeft rt.right;CWnd::OnTimer(nIDEvent); }int CLampCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct) {if (CWnd::OnCreate(lpCreateStruct) -1)return -1;CRect rect, rt;GetClientRect(rt);m_nLeft rt.right;Start();return 0; }③在OnPaint里绘图OnTimer里刷新 void CLampCtrl::OnTimer(UINT_PTR nIDEvent) {Invalidate(FALSE);CWnd::OnTimer(nIDEvent); }void CLampCtrl::OnPaint() {CPaintDC dc(this); // device context for paintingCRect rect, rt;GetClientRect(rt);if ((HFONT)m_font)dc.SelectObject(m_font);dc.FillSolidRect(rt, m_clBack);dc.SetBkMode(TRANSPARENT);dc.SetTextColor(m_clText);dc.SelectObject(GetFont());CSize size dc.GetOutputTextExtent(m_szText);rect rt;rect.left m_nLeft--;dc.DrawText(m_szText, rect, DT_VCENTER | DT_SINGLELINE);if (m_nLeft2 0){rect.left m_nLeft2--;dc.DrawText(m_szText, rect, DT_VCENTER | DT_SINGLELINE);}int nRight m_nLeft size.cx;if (nRight 0){m_nLeft m_nLeft2;m_nLeft2 0;}else if (nRight rt.right / 2 !m_nLeft2)m_nLeft2 rt.right; }22.2 图片切换 class CPageDlg : public CDialogEx {HCURSOR m_hCursor; // 鼠标光标void OnOK() {}int m_nIndex;enum {PAGE_COUNT4};CBitmap m_bs[PAGE_COUNT];CRect m_rs[PAGE_COUNT]; public:CPageDlg(CWnd* pParent NULL); // 标准构造函数// 对话框数据 #ifdef AFX_DESIGN_TIMEenum { IDD IDD_PAGE_DIALOG }; #endifprotected:virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持// 实现 protected:HICON m_hIcon;// 生成的消息映射函数virtual BOOL OnInitDialog();afx_msg void OnPaint();afx_msg HCURSOR OnQueryDragIcon();DECLARE_MESSAGE_MAP() public:afx_msg void OnMouseMove(UINT nFlags, CPoint point); };CPageDlg::CPageDlg(CWnd* pParent /*NULL*/): CDialogEx(IDD_PAGE_DIALOG, pParent) {m_hIcon theApp.LoadIcon(IDR_MAINFRAME);m_hCursor theApp.LoadStandardCursor(IDC_HAND); // 加载系统光标m_nIndex 0; }void CPageDlg::DoDataExchange(CDataExchange* pDX) {CDialogEx::DoDataExchange(pDX); }BEGIN_MESSAGE_MAP(CPageDlg, CDialogEx)ON_WM_PAINT()ON_WM_QUERYDRAGICON()ON_WM_MOUSEMOVE() END_MESSAGE_MAP()// CPageDlg 消息处理程序BOOL CPageDlg::OnInitDialog() {CDialogEx::OnInitDialog();int i -1;while (i _countof(m_bs))m_bs[i].LoadBitmap(IDB_BITMAP1 i);BITMAP bm;m_bs[0].GetBitmap(bm);//MoveWindow(0, 0, bm.bmWidth, bm.bmHeight);SetWindowPos(NULL, 0, 0, bm.bmWidth, bm.bmHeight, SWP_NOMOVE);CRect rect(888, 276, 908, 327);i -1;while (i _countof(m_rs)){m_rs[i] rect;rect.OffsetRect(27, 0);}// 设置此对话框的图标。 当应用程序主窗口不是对话框时框架将自动// 执行此操作SetIcon(m_hIcon, TRUE); // 设置大图标SetIcon(m_hIcon, FALSE); // 设置小图标// TODO: 在此添加额外的初始化代码return TRUE; // 除非将焦点设置到控件否则返回 TRUE } void CPageDlg::OnPaint() {CPaintDC dc(this); // 用于绘制的设备上下文if (m_nIndex 0 || m_nIndex _countof(m_bs))return;CDC mdc;mdc.CreateCompatibleDC(dc);mdc.SelectObject(m_bs m_nIndex);//m_bs[m_nIndex]CRect rect;GetClientRect(rect);dc.BitBlt(0, 0, rect.Width(), rect.Height(), mdc, 0, 0, SRCCOPY); }//当用户拖动最小化窗口时系统调用此函数取得光标 //显示。 HCURSOR CPageDlg::OnQueryDragIcon() {return static_castHCURSOR(m_hIcon); }void CPageDlg::OnMouseMove(UINT nFlags, CPoint point) {int i -1;while (i _countof(m_rs)){if (m_rs[i].PtInRect(point)){if (m_nIndex ! i){m_nIndex i;Invalidate(FALSE);}SetCursor(m_hCursor); //光标变为手型break;}}CDialogEx::OnMouseMove(nFlags, point); }22.2 图片旋转 在OnPaint中绘图 CPageDlg::CPageDlg(CWnd* pParent /*NULL*/): CDialogEx(IDD_PAGE_DIALOG, pParent) {m_nDir 3;m_nLeft 0;m_hIcon theApp.LoadIcon(IDR_MAINFRAME); }void CPageDlg::DoDataExchange(CDataExchange* pDX) {CDialogEx::DoDataExchange(pDX); }BOOL CPageDlg::OnInitDialog() {CDialogEx::OnInitDialog();m_bitmap.LoadBitmap(IDB_BITMAP1);BITMAP bm;m_bitmap.GetBitmap(bm);//MoveWindow(0, 0, bm.bmWidth, bm.bmHeight);SetWindowPos(NULL, 0, 0, bm.bmWidth, bm.bmHeight, SWP_NOMOVE);SetIcon(m_hIcon, TRUE); // 设置大图标SetIcon(m_hIcon, FALSE); // 设置小图标return TRUE; // 除非将焦点设置到控件否则返回 TRUE }void CPageDlg::OnPaint() {CPaintDC dc(this); // 用于绘制的设备上下文//BITMAP bm;//m_bitmap.GetBitmap(bm);CRect rect;GetClientRect(rect);CDC mdc;mdc.CreateCompatibleDC(dc);mdc.SelectObject(m_bitmap);dc.SetStretchBltMode(HALFTONE); //压缩算法设置dc.StretchBlt(m_nLeft, 0, rect.Width() - m_nLeft * 2, rect.Height(), mdc, 0, 0, rect.Width(), rect.Height(), SRCCOPY);SetTimer(1, 16, 0); }HCURSOR CPageDlg::OnQueryDragIcon() {return static_castHCURSOR(m_hIcon); }void CPageDlg::OnMouseMove(UINT nFlags, CPoint point) {CDialogEx::OnMouseMove(nFlags, point); }void CPageDlg::OnTimer(UINT_PTR nIDEvent) {Invalidate(TRUE);//TRUE用窗口自带背景色清理m_nLeft m_nDir;CRect rect;GetClientRect(rect);if (m_nLeft rect.Width() || m_nLeft0)m_nDir * -1;TRACE(m_nLeft%d,Width%d\n, m_nLeft, rect.Width());CDialogEx::OnTimer(nIDEvent); }InvalidateTRUE用窗口自带背景色清理FALSE用上一次绘图图片的背景色用TRUE会有闪烁如何去除闪烁——分三部分绘图 void CPageDlg::OnPaint() {CPaintDC dc(this); // 用于绘制的设备上下文//BITMAP bm;//m_bitmap.GetBitmap(bm);CRect rect, rt;GetClientRect(rect);CDC mdc;mdc.CreateCompatibleDC(dc);mdc.SelectObject(m_bitmap);dc.SetStretchBltMode(COLORONCOLOR);dc.StretchBlt(m_nLeft, 0, rect.Width() - m_nLeft * 2, rect.Height(),mdc, 0, 0, rect.Width(), rect.Height(), SRCCOPY);rt rect;if (m_nDir 0){if (m_nLeft rect.Width() / 2){rt.left 0;rt.right m_nLeft;dc.FillSolidRect(rt, GetSysColor(COLOR_3DFACE));rt.right rect.right;rt.left rect.Width() - m_nLeft;dc.FillSolidRect(rt, GetSysColor(COLOR_3DFACE));}}else{if (m_nLeft rect.Width() / 2){int nWidth rect.Width() - m_nLeft;rt.right rect.right;rt.left rt.right - nWidth;dc.FillSolidRect(rt, GetSysColor(COLOR_3DFACE));rt.right nWidth;rt.left 0;dc.FillSolidRect(rt, GetSysColor(COLOR_3DFACE));}}TRACE(m_nLeft%d,Width%d\n, m_nLeft, rect.Width()); }22.3 梯形分页
http://www.sadfv.cn/news/63996/

相关文章:

  • ck播放器做解析网站优化课程设置
  • 网站建设需要工作计划社区门户网站模板
  • 广告传媒网站模板嘉峪关建设局公告网站
  • 网站优化就是搜索引擎优化无极网址
  • 个人可以建论坛网站吗个人简历模板下载可编辑
  • 网络电话聊天网站建设多少钱山西太原网站建设公司
  • 深圳住房和建设局网站置换平台网站认证金额怎么做分录
  • 请求做女朋友的网站源码用dede做的网站首页
  • 网站关键词优化报价wordpress完成静态化
  • 网站建设与规划实训总结网页游戏开发技术
  • 企业网站推广的方法有免费网站大全下载
  • 公司网站更换域名流程北京市西城区住房建设局官方网站
  • 租车公司网站 模板chat gpt 国内版
  • 网站开发tt0546上海做网站推广公司
  • 网站设计弹窗如何申请单位邮箱
  • 揭阳网站制作企业沧州网站建没
  • 溧水城乡建设局网站宝塔本地装wordpress
  • 百度收录不到公司网站做网站手机验证收费吗
  • 厦门建设集团网站wordpress怎么不调用文字内容
  • 网站建设费 科目黑龙江网站建设企业
  • 宣传 网站建设北京seo招聘信息
  • 网站建设中最基本的决策江西住房和城乡建设厅网站
  • scratch编程网站讯美网站建设
  • 有哪个网站可以学做面条开面馆wordpress修改域名文件夹
  • 免费建站哪个网站最好深圳wordpress培训
  • 国外网站流量免费物流公司网站模板
  • 璧山集团网站建设电商平台运营公司
  • 深圳动力网站设计公司wordpress随机图片
  • 建设银行投资网站首页哈尔滨市建设安全监察网站
  • 外贸网站怎么做关键词建设电影网站赚钱