Механизмы параллельных вычислений в Windows. Разработка справочной системы
Рефераты >> Программирование и компьютеры >> Механизмы параллельных вычислений в Windows. Разработка справочной системы

SendDlgItemMessage(hDlg,ID,LB_ADDSTRING,0,(LPARAM) (LPCTSTR)"Х");

SendDlgItemMessage(hDlg,ID,LB_ADDSTRING,0,(LPARAM) (LPCTSTR)"вертикальная линия");

SendDlgItemMessage(hDlg,ID,LB_ADDSTRING,0,(LPARAM) (LPCTSTR)"ромб");

SendDlgItemMessage(hDlg,ID,LB_ADDSTRING,0,(LPARAM) (LPCTSTR)"Т");

SendDlgItemMessage(hDlg,ID,LB_ADDSTRING,0,(LPARAM) (LPCTSTR)"_|_");

SendDlgItemMessage(hDlg,ID,LB_ADDSTRING,0,(LPARAM) (LPCTSTR)"Н");

SendDlgItemMessage(hDlg,ID,LB_ADDSTRING,0,(LPARAM) (LPCTSTR)"стрелка вверх");

SendDlgItemMessage(hDlg,ID,LB_ADDSTRING,0,(LPARAM) (LPCTSTR)"стрелка вниз");

SendDlgItemMessage(hDlg,ID,LB_ADDSTRING,0,(LPARAM) (LPCTSTR)"треугольник");

SendDlgItemMessage(hDlg,ID,LB_ADDSTRING,0,(LPARAM) (LPCTSTR)"нижний левый прямоугольный треугольник");

SendDlgItemMessage(hDlg,ID,LB_ADDSTRING,0,(LPARAM) (LPCTSTR)"нижний правый прямоугольный треугольник");

SendDlgItemMessage(hDlg,ID,LB_ADDSTRING,0,(LPARAM) (LPCTSTR)"верхний левый прямоугольный треугольник");

SendDlgItemMessage(hDlg,ID,LB_ADDSTRING,0,(LPARAM) (LPCTSTR)"верхний правый прямоугольный треугольник");

SendDlgItemMessage(hDlg,ID,LB_ADDSTRING,0,(LPARAM) (LPCTSTR)"квадрат с диагональю верх лево - низ право");

SendDlgItemMessage(hDlg,ID,LB_ADDSTRING,0,(LPARAM) (LPCTSTR)"квадрат с диагональю низ лево - верх право");

SendDlgItemMessage(hDlg,ID,LB_ADDSTRING,0,(LPARAM) (LPCTSTR)"квадрат с крестом");

SendDlgItemMessage(hDlg,ID,LB_ADDSTRING,0,(LPARAM) (LPCTSTR)"левый треугольник");

SendDlgItemMessage(hDlg,ID,LB_ADDSTRING,0,(LPARAM) (LPCTSTR)"правый треугольник");

SendDlgItemMessage(hDlg,ID,LB_ADDSTRING,0,(LPARAM) (LPCTSTR)"стрелка влево");

SendDlgItemMessage(hDlg,ID,LB_ADDSTRING,0,(LPARAM) (LPCTSTR)"стрелка вправо");

SendDlgItemMessage(hDlg,ID,LB_ADDSTRING,0,(LPARAM) (LPCTSTR)"круг");

SendDlgItemMessage(hDlg,ID,LB_ADDSTRING,0,(LPARAM) (LPCTSTR)"прямоугольник без углов");

}

LRESULT CALLBACK Select(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)

{

int i;

int index[27];

char buf[256];

switch (message)

{

case WM_INITDIALOG:

hDlgSelect = hDlg;

// SendDlgItemMessage(hDlg, IDC_LISTBOX2, LB_RESETCONTENT, 0, 0);

fillb(hDlg,IDC_LISTBOX2);

return TRUE;

case WM_CLOSE:

EndDialog(hDlg, LOWORD(wParam));

return TRUE;

case WM_COMMAND:

switch (LOWORD(wParam))

{

case IDC_OK2:

for(i=0;i<27;i++) index[i] = -1;

SendDlgItemMessage(hDlg, IDC_LISTBOX3, LB_SETSEL, (WPARAM) TRUE, (LPARAM) (UINT) -1);

SendDlgItemMessage(hDlg, IDC_LISTBOX3, LB_GETSELITEMS, (WPARAM) 27, (LPARAM) (LPINT) index);

SendDlgItemMessage(hQryDlgBox, IDC_LISTBOX1, LB_RESETCONTENT, 0, 0);

for(i=0;i<SendDlgItemMessage(hDlg, IDC_LISTBOX3,LB_GETSELCOUNT,0,0);i++){

SendDlgItemMessage(hDlg, IDC_LISTBOX3, LB_GETTEXT, (WPARAM) index[i], (LPARAM) (LPCTSTR) buf);

SendDlgItemMessage(hQryDlgBox, IDC_LISTBOX1, LB_ADDSTRING, 0,(LPARAM) (LPCTSTR) buf);

};

EndDialog(hDlg, LOWORD(wParam));

return TRUE;

case IDC_CLEAR:

SendDlgItemMessage(hDlg, IDC_LISTBOX3, LB_RESETCONTENT, 0, 0);

SendDlgItemMessage(hQryDlgBox, IDC_LISTBOX1, LB_RESETCONTENT, 0, 0);

return TRUE;

case IDC_ADD:

for(i=0;i<27;i++) index[i] = -1;

SendDlgItemMessage(hDlg, IDC_LISTBOX2, LB_GETSELITEMS, (WPARAM) 27, (LPARAM) (LPINT) index);

for(i=0;i<SendDlgItemMessage(hDlg, IDC_LISTBOX2,LB_GETSELCOUNT,0,0);i++){

SendDlgItemMessage(hDlg, IDC_LISTBOX2, LB_GETTEXT, (WPARAM) index[i], (LPARAM) (LPCTSTR) buf);

SendDlgItemMessage(hDlg, IDC_LISTBOX3, LB_ADDSTRING,0,(LPARAM) (LPCTSTR) buf);

};

SendDlgItemMessage(hDlg, IDC_LISTBOX2, LB_SETSEL, (WPARAM) FALSE, (LPARAM) (UINT) -1);

return TRUE;

case IDC_DELETE:

SendDlgItemMessage(hDlg, IDC_LISTBOX3, LB_GETSELITEMS, (WPARAM) 27, (LPARAM) (LPINT) index);

for(i=0;i<SendDlgItemMessage(hDlg, IDC_LISTBOX3,LB_GETSELCOUNT,0,0);i++){

SendDlgItemMessage(hDlg, IDC_LISTBOX3, LB_DELETESTRING, (WPARAM) index[i], 0);

};

return TRUE;

}

break;

}

return FALSE;

}

void PaintShapes(HWND hDlg)

{

const int x = 350;

const int y = 150;

int index[27];

char buf[256];

static COLORREF cr=RGB(200,200,200 );//цвет фона

HPEN hPen, hPenOld; //перо

LOGBRUSH lb;

HBRUSH hBrush; //кисть

HBRUSH hOldBrush;

//создание контекста

lb.lbStyle=PS_SOLID;

lb.lbColor=RGB(255,0,0);

//создание пера

hPen=ExtCreatePen(PS_GEOMETRIC | PS_SOLID,1,&lb,0,NULL);

hPenOld=HPEN(SelectObject(hdc,hPen));

//создание кисти

hBrush=CreateSolidBrush(cr);

hOldBrush=HBRUSH(SelectObject(hdc,hBrush));

flag = false;

SendDlgItemMessage(hDlg, IDC_LISTBOX1, LB_GETSELITEMS, (WPARAM) 27, (LPARAM) (LPINT) index);

for(int i=0;i<SendDlgItemMessage(hDlg, IDC_LISTBOX1,LB_GETSELCOUNT,0,0);i++){

SendDlgItemMessage(hDlg, IDC_LISTBOX1, LB_GETTEXT, (WPARAM) index[i], (LPARAM) (LPCTSTR) buf);

if(strcmp(buf,"горизонтальная линия") == 0){

MoveToEx(hdc, x-50, y, NULL);

LineTo(hdc, x+50, y);

flag = true;

};

if(strcmp(buf,"квадрат") == 0){

MoveToEx(hdc, x-50, y-50, NULL);

LineTo(hdc, x+50, y-50);

LineTo(hdc, x+50, y+50);

LineTo(hdc, x-50, y+50);

LineTo(hdc, x-50, y-50);

flag = true;

};

if(strcmp(buf,"шестиугольник") == 0){

MoveToEx(hdc,x-50,y,NULL);

LineTo(hdc,x-25,y-50);

LineTo(hdc,x+25,y-50);

LineTo(hdc,x+50,y);

LineTo(hdc,x+25,y+50);

LineTo(hdc,x-25,y+50);

LineTo(hdc,x-50,y);

flag = true;

};

if(strcmp(buf,"восьмиугольник") == 0){

MoveToEx(hdc,x-50,y-25,NULL);

LineTo(hdc,x-25,y-50);

LineTo(hdc,x+25,y-50);

LineTo(hdc,x+50,y-25);

LineTo(hdc,x+50,y+25);

LineTo(hdc,x+25,y+50);

LineTo(hdc,x-25,y+50);

LineTo(hdc,x-50,y+25);

LineTo(hdc,x-50,y-25);

flag = true;

};

if(strcmp(buf,"крест") == 0){

MoveToEx(hdc,x,y-50,NULL);

LineTo(hdc,x,y+50);

MoveToEx(hdc,x-50,y,NULL);

LineTo(hdc,x+50,y);

flag = true;

};

if(strcmp(buf,"Х") == 0){

MoveToEx(hdc,x-50,y-50,NULL);

LineTo(hdc,x+50,y+50);

MoveToEx(hdc,x-50,y+50,NULL);

LineTo(hdc,x+50,y-50);

flag = true;

};

if(strcmp(buf,"вертикальная линия") == 0){

MoveToEx(hdc, x, y-50, NULL);

LineTo(hdc, x, y+50);

flag = true;

};

if(strcmp(buf,"ромб") == 0){

MoveToEx(hdc,x-50,y,NULL);

LineTo(hdc,x,y-50);

LineTo(hdc,x+50,y);

LineTo(hdc,x,y+50);

LineTo(hdc,x-50,y);

flag = true;


Страница: