请问关于c的具体应用场景有哪些?
- 内容介绍
- 文章标签
- 相关推荐
本文共计550个文字,预计阅读时间需要3分钟。
如果我在重写OnPaint并想在控件上绘制一个正方形,但在设计器中预览时e.graphics.draw+...没有出现,可能的原因有以下几点:
1. 控件未正确初始化:确保在控件初始化时正确设置了绘图环境。
2.绘图对象未正确创建:检查e.graphics对象是否已经正确创建,并且没有错误。
3.绘图区域未正确设置:确认绘制的区域是控件的有效绘制区域。
4.绘图命令顺序错误:确保绘图命令的顺序正确,例如先设置颜色再绘制图形。
5.控件属性设置问题:检查控件的属性是否正确设置,例如背景色、透明度等。
以下是一个简化的示例代码,展示如何在控件上绘制一个正方形:
cpp
void MyControl::OnPaint(){ CPaintDC dc(this); // device context for painting// 创建一个与控件大小相同的矩形,用于绘制正方形 CRect rect; GetClientRect(&rect);
// 计算正方形的边长 int sideLength=min(rect.Width(), rect.Height());
// 计算正方形起始点 int startX=(rect.Width() - sideLength) / 2; int startY=(rect.Height() - sideLength) / 2;
// 使用e.graphics绘制正方形 e.graphics->BeginPath(); e.graphics->MoveTo(startX, startY); e.graphics->LineTo(startX + sideLength, startY); e.graphics->LineTo(startX + sideLength, startY + sideLength); e.graphics->LineTo(startX, startY + sideLength); e.graphics->ClosePath();
// 设置绘制颜色 e.graphics->SetPenColor(RGB(0, 0, 0)); // 黑色
// 绘制正方形 e.graphics->DrawPath();}
请根据你的具体环境调整代码。如果问题仍然存在,建议检查相关文档或寻求更具体的帮助。
如果我重写OnPaint并在控件上绘制一个正方形,那么当我在设计器中预览时,如何让e.graphics.draw …出现? msdn.microsoft.com/en-us/magazine/cc164048.aspxmsdn.microsoft.com/en-us/magazine/cc164145.aspx
While you could manually register with
Control.OnPaint to add your design
time UI, you’ll find that overriding
OnPaintAdornments is a better option
because it is only called after the
control’s design-time/run-time UI is
painted, letting you put the icing on
the cake (see Figure 20). Simply
adding DesignerAttribute to the
ClockControl class completes the
association: Copy Code[ Designer(typeof(ClockControlDesigner)) ] class ClockControl : Control { … }
本文共计550个文字,预计阅读时间需要3分钟。
如果我在重写OnPaint并想在控件上绘制一个正方形,但在设计器中预览时e.graphics.draw+...没有出现,可能的原因有以下几点:
1. 控件未正确初始化:确保在控件初始化时正确设置了绘图环境。
2.绘图对象未正确创建:检查e.graphics对象是否已经正确创建,并且没有错误。
3.绘图区域未正确设置:确认绘制的区域是控件的有效绘制区域。
4.绘图命令顺序错误:确保绘图命令的顺序正确,例如先设置颜色再绘制图形。
5.控件属性设置问题:检查控件的属性是否正确设置,例如背景色、透明度等。
以下是一个简化的示例代码,展示如何在控件上绘制一个正方形:
cpp
void MyControl::OnPaint(){ CPaintDC dc(this); // device context for painting// 创建一个与控件大小相同的矩形,用于绘制正方形 CRect rect; GetClientRect(&rect);
// 计算正方形的边长 int sideLength=min(rect.Width(), rect.Height());
// 计算正方形起始点 int startX=(rect.Width() - sideLength) / 2; int startY=(rect.Height() - sideLength) / 2;
// 使用e.graphics绘制正方形 e.graphics->BeginPath(); e.graphics->MoveTo(startX, startY); e.graphics->LineTo(startX + sideLength, startY); e.graphics->LineTo(startX + sideLength, startY + sideLength); e.graphics->LineTo(startX, startY + sideLength); e.graphics->ClosePath();
// 设置绘制颜色 e.graphics->SetPenColor(RGB(0, 0, 0)); // 黑色
// 绘制正方形 e.graphics->DrawPath();}
请根据你的具体环境调整代码。如果问题仍然存在,建议检查相关文档或寻求更具体的帮助。
如果我重写OnPaint并在控件上绘制一个正方形,那么当我在设计器中预览时,如何让e.graphics.draw …出现? msdn.microsoft.com/en-us/magazine/cc164048.aspxmsdn.microsoft.com/en-us/magazine/cc164145.aspx
While you could manually register with
Control.OnPaint to add your design
time UI, you’ll find that overriding
OnPaintAdornments is a better option
because it is only called after the
control’s design-time/run-time UI is
painted, letting you put the icing on
the cake (see Figure 20). Simply
adding DesignerAttribute to the
ClockControl class completes the
association: Copy Code[ Designer(typeof(ClockControlDesigner)) ] class ClockControl : Control { … }

