| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 824 人关注过本帖
标题:MFC画笔的学习问题请教
取消只看楼主 加入收藏
聪儿
Rank: 1
等 级:新手上路
帖 子:75
专家分:3
注 册:2012-9-2
结帖率:77.78%
收藏
已结贴  问题点数:20 回复次数:3 
MFC画笔的学习问题请教
主要是不太懂OnDraw(CDC* pDC)中的CDC* pDC,我开始写了一个程序,以下操作在OnDraw(CDC* pDC)中,然后运行ok。
现在试着把 这些移动到 动作函数中,不知道pDC怎么得来。如下写法运行出来没有显示结果。(其他函数中均无改变)
请各位大牛解答以下。

多谢!!
void CMfcpen_1View::OnLButtonDown(UINT nFlags, CPoint point)
{
    int red=0,green=0,blue=0;
    int width=2;
    int row=20;
    for (int i=0;i<8;i++)
    {
        CDC* pDC;
        int color=RGB(red,green,blue);
        CPen newPen(PS_SOLID,width,color);
        CPen * oldPen=pDC->SelectObject(&newPen);
        pDC->MoveTo(20,row);
        pDC->LineTo(100,row);
        red+=10;
        green+=10;
        blue+=10;
        width+=2;
        row+=30;
    }
        InvalidateRect(NULL);

    // TODO: Add your message handler code here and/or call default
   
    CView::OnLButtonDown(nFlags, point);
}
搜索更多相关主题的帖子: color 画笔 
2012-09-06 10:25
聪儿
Rank: 1
等 级:新手上路
帖 子:75
专家分:3
注 册:2012-9-2
收藏
得分:0 
可以帮忙改一个出来吗?
我看了这些的唯一想法就是改成这样子:在开始处
    CDC* pDC;
    pDC=GetDC();
但是没有作用。。
2012-09-06 16:45
聪儿
Rank: 1
等 级:新手上路
帖 子:75
专家分:3
注 册:2012-9-2
收藏
得分:0 
版主:您好!
基于几天对重绘的认识, InvalidateRect(NULL)这句确实应该注释掉;
但是不明白你为什么说
 CPen newPen(PS_SOLID,width,color);
   CPen * oldPen=pDC->SelectObject(&newPen);这两句也要注释掉,这两句是更新画笔,道理上肯定不可以注释掉的。

另外:注释掉之后,还是没有作用。

小郭:你好!
这次尝试发现确实有濒临崩溃,但是确实不懂原理和该法,请指点一二!多谢!

2012-09-09 16:54
聪儿
Rank: 1
等 级:新手上路
帖 子:75
专家分:3
注 册:2012-9-2
收藏
得分:0 
如果看到的话请回复一下哈。。
3q啦。。
2012-09-11 10:36
快速回复:MFC画笔的学习问题请教
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027524 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved