C语言画图 程序解析

来源:百度知道 编辑:UC知道 时间:2024/06/19 05:20:21
void CDataBlkFreq::OnPaint()
{
CPaintDC dc(this); // device context for painting
CPen redPen(PS_SOLID, 1, RGB(255,0,0));
char s[256];
FILE *fp;
float *pvals, tmp;
int i, j, x, y;

// TODO: Add your message handler code here

dc.MoveTo( 20, 20);
dc.LineTo( 20,420);
dc.MoveTo( 20,420);
dc.LineTo(820,420);
dc.MoveTo( 20,420);
dc.LineTo(820, 20);

dc.SelectObject(&redPen);
// Get the actual data

sprintf(s, "experiments/%s/%s/results", generatorDir[tp.generator],
testNames[TESTS_BLOCK_FREQUENCY]);
if ( (fp = fopen(s, "r")) == NULL ) {
MessageBox(s, "File Open Error", MB_ICONSTOP|MB_OK);
return;
}
pvals = (float *)calloc(sizeof(float), tp.numOfBitStreams);
for ( i=0; i<tp.numOfBitStreams; i++ )
fscanf(fp, "%f\n", &(pvals[i]));
fclose(fp);

for (i=0; i&l

你这是C++的代码,而且用的是Win32的代码,里面会有很多窗体函数API,你只复制了一部分,简单的来说,C++里,话图是用的类,
CPaintDC dc(this); 建立了一个CPaintDC对象dc,然后通过操作这个对象来完成一些图案,就是下面的dc.MoveTo( 20, 20);
dc.LineTo( 20,420);
dc.MoveTo( 20,420);
dc.LineTo(820,420);
dc.MoveTo( 20,420);
dc.LineTo(820, 20);
上面是连线,
dc.Ellipse(x-1+20, 420-y-1, x+1+20, 420-y+1);
这是画椭圆,

你这段代码是复制了一部分,而CPaintDC对象属于谁,应该在头文件里,具体信息,可以查C++类库大全