MFC上绘制的图被picture控件挡住了怎么办 50

代码如下voidOUTPUT::OnPaint(){CPaintDCdc(this);//devicecontextforpaintingCWnd*pPictureWnd... 代码如下
void OUTPUT::OnPaint()
{
CPaintDC dc(this); // device context for painting
CWnd* pPictureWnd1 = GetDlgItem(IDC_STATIC_graphic1);
CDC* pDC1 = pPictureWnd1->GetDC();
CPen pen;
pen.CreatePen(PS_SOLID,0,RGB(0,0,0)); //PS_SOLID---实线 DOT--点阵//1---画笔宽度,0为一个像素点,1则为两个像素点
CPen* pOldPen=pDC1->SelectObject(&pen);

pDC1->MoveTo(0,0);
pDC1->LineTo(200,800);
其中ID_STATIC_graphic1是一个picture控件
点进去后直线被picture的白色背景给遮住了,应该怎样改?
展开
 我来答
龚炜林
2013-01-02 · TA获得超过1560个赞
知道大有可为答主
回答量:1102
采纳率:66%
帮助的人:578万
展开全部
有个原因你可以考虑:你的picture控件使用了自己派生的类控制,然后派生类里你响应了WM_PAINT消息,而你这个OUTPUT是父窗口,你这个绘图顺序就成了,先执行父窗口的画图函数,再派生类的画图函数OnPaint,所以,如果派生类没有任何绘制操作,就是个白色背景了,因为擦除了父窗口中关于picture绘制的内容。
追问
那应该怎么改呢?
sky_blue852
2013-01-02 · 超过30用户采纳过TA的回答
知道答主
回答量:52
采纳率:0%
帮助的人:71万
展开全部
没什么问题啊 ,,, 你的白色背景 哪里来的啊
你的代码里 没有画刷画区域啊..

ps. 你的 代码有句柄资源泄漏 最后 加上 pDC1->DeleteDC();

请教 为什么 线宽设置为1 你却说实际是2呢...
追问
白色背景是在picture的属性中“颜色”里改成白色
picture的类型是“矩形”,是不是这里出问题了?
追答

这是我绘制出来的  改变 那个 颜色 只能是边框那里改变啊  你说的是那一个像素点 白色 在画笔的黑色之上吗?


如果没有什么特殊的需求 就用 Frame 属性啊    在 paint函数里 是现调用了你的 画图 调用

控件自身的画图 所以 被遮住了   如果你去点一下按钮 执行你的画图代码 就不会有错

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lgao622
2013-01-02 · 知道合伙人软件行家
lgao622
知道合伙人软件行家
采纳数:1137 获赞数:6550
毕业于武汉工程大学邮电与信息工程学院通信专业,软件行业,4年工作经验。

向TA提问 私信TA
展开全部
这样只有移一下picture 控件
追问
那样的话,图形也会跟着移动,还是会挡住
追答
pen.CreatePen(PS_SOLID, 1 ,RGB(0,0,0));//这个问题,1 才是一个像素点
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式