首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

SetPixel的奇怪有关问题, 哪位大哥大姐帮帮忙

2012-02-02 
SetPixel的奇怪问题, 哪位大哥大姐帮帮忙Hi, 请教高人我在VS 2008 下 建立了一个MFC SDI Application然后

SetPixel的奇怪问题, 哪位大哥大姐帮帮忙
Hi, 请教高人

我在VS 2008 下 建立了一个MFC SDI Application
然后在Client区, 我用setpixel从(0,0)开始画一条长1000pixel的黑色直线, 但是结果很奇怪。
画出来的线是断断续续的, 前256个pixel画出来了, 中间256个是白的,然后256个pixel又画出来了, 然后又是白的。。。。如此断断续续。 不知道问题出在哪里。
哪位大哥遇到过类似的情况? 小弟现在不知道是什么原因造成的, 我用lineto就不会有这样的问题, 但是用setpixel就不行, 更奇怪的是如果我从(0,0)画一条长1000pixel的竖线就没事。

我不知道是因为建立MFC SDI的时候设置不对, 还是有什么其它属性不对, 还是和显卡驱动有关。
代码如下, 很简单
  CDC* pDC
  CPoint pos(0,0);
pDC = GetDC();

for(int i=0;i<1000;i++)
pDC->SetPixel(i,0,RGB(0,0,0));

ReleaseDC(pDC);

[解决办法]

C/C++ code
    PAINTSTRUCT ps;    hWnd = GetSafeHwnd();    HDC hDC = ::BeginPaint(hWnd, &ps);    for(int i=0;i<1000;i++)         ::SetPixel(hDC, i, 0, RGB(0,0,0));     ::EndPaint(hWnd, &ps);
[解决办法]
在视图类的WM_PAINT消息处理中画。
[解决办法]
问题可能出在你的DC上
直接在OnDraw(CDC *pDC)里画就行了
上面的那些代码只要
for(int i=0;i<1000;i++) 
::SetPixel(hDC, i, 0, RGB(0,0,0)); 
就够了

[解决办法]
小弟也出现这个问题了..我是用SetPixel画个x=a*cos^3(t),y=a*sin^3(t)的星形图,x坐标每隔256像素就空白一段...百度到这里来了..不解...
我是直接用的视类的pDC啊..
[解决办法]
呵呵 , 肯定是你的pDC的画笔是白色的,所以你看不到画出的效果
[解决办法]
是不是后来又重绘了,还是画笔颜色设置出了问题

热点排行