RT,还有个问题就是我把黑色转成int以后为什么会是-842150451,RGB的值不是unsigend long么,为什么会是负的,而且突破了int的下限?转成DWORD以后也还是这个值。
俩问题~
俩问题~
解决方案 »
- VS2008 C++在给类添加成员函数 、变量的时候很慢 是什么原因呢??
- 关于NT函数
- 如何改变CListCtrl控件字体
- 继续问,如何给Checkbox设置热键
- 50分,但鼠标移动到一控件时,如何使用手型指针?
- 转贴:VChelp上的一篇好文章,很有共鸣,希望对大家有益!
- 202.102.233.29 用户名称: 密码: 我忘记了,谁能告诉?
- 在win2000下到底能不能用WriteFile()向LPT1传送数据啊?
- 组件如何访问结构体接口参数的指针成员
- 请问[kxy]、[unl]、[zdg]、[929]四大天王有关DLL问题???
- 各位大侠 请问 这个 程序 问题在哪 急!!! 谢哈!!!
- 怎么利用stdiofile读文件 然后利用clisctrl显示出来啊
黑色的RGB值不是0吗,上你的转换代码看看
用sprintf
你的-842150451转成16进制就是0xCDCDCDCD
调试版没有初始化的内存好像是填充CDCDCDCD
确实没有初始化,改成0以后也是黑色,初始化成-842150451也是黑色,而且用int和DWORD都一样
void CDraw::DDALine(int x1, int y1, int x2, int y2, int color, CDC *ppDC)
{
/* CString mstr;
mstr.Format("%d",color);
AfxMessageBox(mstr);*/ int k,j;
float dx,dy,x,y;
k=abs(x2-x1);
if(abs(y2-y1)>k)
{
k=abs(y2-y1);
}
dx=(float)(x2-x1)/k;
dy=(float)(y2-y1)/k; x=x1+0.5;
y=y1+0.5;
for(int i=1;i<=k;i++)
{
ppDC->SetPixel((int)x,(int)y,color);
x=x+dx;
y=y+dy;
}
}
画线的地方的代码就是这样的。