标签:div 应用 ret alter image 添加 hearts mil 效果图

// WM_INITDIALOG消息
BOOL CRedHeardDlg::OnInitDialog()
{
CDialogEx::OnInitDialog();
// 设置此对话框的图标。 当应用程序主窗口不是对话框时,框架将自动
// 执行此操作
SetIcon(m_hIcon, TRUE); // 设置大图标
SetIcon(m_hIcon, FALSE); // 设置小图标
// TODO: 在此添加额外的初始化代码
CreateHeart(m_rgn);
return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
}
// WM_PAINT消息
void CRedHeardDlg::OnPaint()
{
CPaintDC dc(this); // 用于绘制的设备上下文
CBrush br(RGB(255, 0, 0));
CRgn r;
r.CreateRectRgn(0, 0, 0, 0);
r.CopyRgn(&m_rgn);
dc.FillRgn(&r, &br);
this->SetWindowRgn(r, TRUE);
}
// 生成心形的函数
// 其中在文件头部有定义#define M_PI 3.14159265358979323846
void CRedHeardDlg::CreateHeart(CRgn &rgn)
{
CRect rect;
GetWindowRect(rect);
CArray<CPoint> lines;
int a = 10;
for (float t = 0; t < 2 * M_PI; t += 0.001)
{
float x = 16 * pow(sinf(t), 3);
float y = 13 * cosf(t) - 5 * cosf(2 * t) - 2 * cosf(3 * t) - cosf(4 * t);
lines.Add(CPoint(x * a + rect.Width() / 2, -y * a + rect.Height() / 2));
}
int nSize = lines.GetSize();
rgn.CreatePolygonRgn(&lines[0], nSize, ALTERNATE);
}
标签:div 应用 ret alter image 添加 hearts mil 效果图
原文地址:https://www.cnblogs.com/veis/p/12930515.html