Смекни!
smekni.com

Алгоритм раскраски графа (точный) (стр. 4 из 4)

CDialog::OnLButtonDown(nFlags, point);

const int rad=15;

CClientDCdc(this);

//Создать новое перо

CPen MyNewPen;

MyNewPen.CreatePen(PS_SOLID, 1, RGB(0,0,0));

CBrush br;

br.CreateSolidBrush(RGB(200,200,200));

//Выбрать перо

CPen* pOriginalPen;

CBrush* pbr;

pOriginalPen=dc.SelectObject(&MyNewPen);

pbr=dc.SelectObject(&br);

CRect MyRectangle(point.x-rad,point.y-rad,point.x+rad,point.y+rad);

//Нарисовать круг

SetBkMode(dc,TRANSPARENT);

if ((point.x>30)&&(point.x<540)&&(point.y>160)&&(point.y<565))

if (radio==1)

{

char buf[3];

kolv++;

dc.Ellipse(&MyRectangle);

itoa(kolv,buf,10);

if (kolv>9)

dc.TextOut(point.x-8,point.y-8,buf);

else dc.TextOut(point.x-4,point.y-8,buf);

versh[kolv].x=point.x;

versh[kolv].y=point.y;

}

if ((radio==2)&&(kolv>1))

{

for(int i=1; i<kolv+1 ; i++)

if ((point.x<versh[i].x+15)&&(point.x>versh[i].x-15)&&(point.y<versh[i].y+15)&&(point.y>versh[i].y-15))

if (paint==0) { paint=1; kolreb++; rebro[kolreb].n=i;}

else if (i!=rebro[kolreb].n)

{

paint=0;

rebro[kolreb].k=i;

dc.MoveTo(versh[rebro[kolreb].n].x,versh[rebro[kolreb].n].y);

dc.LineTo(versh[rebro[kolreb].k].x,versh[rebro[kolreb].k].y);

Invalidate(TRUE);

}

}

}

void CKursovojDlg::OnButton2()

{

char ch[2];

CString str;

// TODO: Add your control notification handler code here

m_l1.ResetContent();

for (int i=0 ; i<1000; i++)

for (int j=0 ; j<100; j++)

{

matsm[i][j]=0;

mass[i][j]=0;

fff[i][j]=0;

umnf[i][j]=0;

}

for ( i=1 ; i<kolv+1 ; i++)

{

for (int j=1 ; j<kolv+1 ; j++)

{

if (i==j) matsm[i][j]=0;

else

{

matsm[i][j]=0;

for (int t=1; t<kolreb+1; t++)

if (((rebro[t].n==i)&&(rebro[t].k==j))||((rebro[t].n==j)&&(rebro[t].k==i)))

matsm[i][j]=1;

}

itoa(matsm[i][j],ch,10);

str+=ch;

str+=" ";

}

m_l1.AddString(str);

str="";

}

m_nach.EnableWindow(true);

}

void CKursovojDlg::OnButton3()

{

// TODO: Add your control notification handler code here

kolv=0;

kolreb=0;

rav=0;

for (int i=0 ; i<1001; i++)

for (int j=0 ; j<101; j++)

{

//versh[1000];

//rebro[2000];

matsm[i][j]=0;

//umn[1000];

mass[i][j]=0;

fff[i][j]=0;

umnf[i][j]=0;

}

m_r1.EnableWindow(false);

Invalidate(TRUE);

}

void CKursovojDlg::OnButton4()

{

// TODO: Add your control notification handler code here

raskr();

}

void CKursovojDlg::OnButton5()

{

// TODO: Add your control notification handler code here

CKursovojDlg::OnOK();

}

void CAboutDlg::OnOK()

{

// TODO: Add extra validation here

CDialog::OnOK();

}

void CKursovojDlg::OnButton6()

{

// TODO: Add your control notification handler code here

CAboutDlg M;

M.DoModal();

}