滚动的CStatic
来源:互联网 发布:自然搜索排名优化 编辑:程序博客网 时间:2024/06/06 03:19
#pragma once
// CGoGoStatic
class CGoGoStatic : public CStatic
{
DECLARE_DYNAMIC(CGoGoStatic)
public:
CGoGoStatic();
virtual ~CGoGoStatic();
void GoGo();
void Stop();
void EndGoGo();
protected:
DECLARE_MESSAGE_MAP()
void CalcTextSize();
CPoint m_ptStart;
CSize m_szText;
public:
afx_msg void OnTimer(UINT nIDEvent);
afx_msg void OnPaint();
};
// GoGoStatic.cpp : 实现文件
//
#include "stdafx.h"
#include "DialogQuestion.h"
#include "./gogostatic.h"
#define ID_TIMER_GOGO 888888
// CGoGoStatic
IMPLEMENT_DYNAMIC(CGoGoStatic, CStatic)
CGoGoStatic::CGoGoStatic()
: m_ptStart(0)
, m_szText(0)
{
}
CGoGoStatic::~CGoGoStatic()
{
}
BEGIN_MESSAGE_MAP(CGoGoStatic, CStatic)
ON_WM_TIMER()
ON_WM_PAINT()
END_MESSAGE_MAP()
// CGoGoStatic 消息处理程序
void CGoGoStatic::OnTimer(UINT nIDEvent)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
if ( nIDEvent == ID_TIMER_GOGO )
{
m_ptStart.x -= 2;
CRect rtClient;
GetClientRect(&rtClient);
rtClient.NormalizeRect();
if ( m_ptStart.x+m_szText.cx < rtClient.left )
m_ptStart.x = rtClient.right - 2;
ShowWindow(SW_HIDE);
ShowWindow(SW_NORMAL);
}
CStatic::OnTimer(nIDEvent);
}
void CGoGoStatic::OnPaint()
{
CPaintDC dc(this); // device context for painting
CString strText;
GetWindowText(strText);
CRect rtClient;
GetClientRect(&rtClient);
CRgn rgnClip;
rgnClip.CreateRectRgn(rtClient.left, rtClient.top, rtClient.right, rtClient.bottom);
dc.SelectClipRgn(&rgnClip);
int nOldBkMode = dc.SetBkMode(TRANSPARENT);
CGdiObject* pOldObj = dc.SelectStockObject(DEFAULT_GUI_FONT);
dc.TextOut(m_ptStart.x, m_ptStart.y, strText);
dc.SelectObject(pOldObj);
dc.SetBkMode(nOldBkMode);
dc.SelectClipRgn(NULL);
}
void CGoGoStatic::GoGo()
{
KillTimer(ID_TIMER_GOGO);
CalcTextSize();
SetTimer(ID_TIMER_GOGO, 100, NULL);
}
void CGoGoStatic::Stop()
{
KillTimer(ID_TIMER_GOGO);
}
void CGoGoStatic::EndGoGo()
{
KillTimer(ID_TIMER_GOGO);
m_ptStart = 0;
ShowWindow(SW_HIDE);
ShowWindow(SW_NORMAL);
}
void CGoGoStatic::CalcTextSize()
{
CString strText;
GetWindowText(strText);
CDC* pDC = GetDC();
pDC->SelectStockObject(DEFAULT_GUI_FONT);
m_szText = pDC->GetTextExtent(strText);
}
- 滚动的CStatic
- CStatic重载使用滚动条
- CStatic 的使用
- CStatic 的使用方法
- CStatic控件的使用
- CStatic 的用法
- CStatic 的用法
- CStatic的自绘
- CSTATIC 控件的刷新
- CStatic的自绘
- CStatic
- CStatic
- CStatic
- CStatic
- cstatic
- CStatic
- CStatic控件的基本使用
- CStatic控件的基本使用
- 批处理代码遇到路径中间有空格怎么办?
- JavaScript调用cs中带参数的函数
- WEB打印方案——四方WEB打印控件
- 做回高中时代的自己—艾迪
- mySql 的 case when 用法
- 滚动的CStatic
- 孤独的我呵呵
- 《如何解题》读书笔记
- 有条件限制的全排序算法
- 已经引用了SystemWeb命名空间的情况下仍不能调用HttpContext类
- 加密算法(二)——【DES算法实现过程分析】
- Struts与JFreeChart的整合
- 内存池VC实现 VC十年技术群聊天笔记
- Apache No services installed 错误