Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Stepanov_2.doc
Скачиваний:
1
Добавлен:
20.09.2019
Размер:
405.5 Кб
Скачать
    1. Описание (назначение) функций и структур

#

Функции и структуры данных

Назначение

1.

int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInstance, LPSTR lpszCmdParam, int nCmdShow);

Главная функция ПО. Создаёт новый процесс – приложение.

Запускает функцию регистрации классов окон.

Запускает функцию создания главного окна.

Запускает цикл обработки сообщений главного окна – карусель, благодаря которой работает всё приложение.

2.

BOOL Register(HINSTANCE hInst);

Регистрирует в базе данных ОС классы окон.

3.

HWND Create(HINSTANCE hInst, int nCmdShow);

Создаёт главное окно.

4.

BOOL CALLBACK Dates252DialogProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)

Обрабатывает сообщения ON_HELP

и ON_CLOSE: запоминает установленные параметры в структуру iniID.

Осуществляется проверка не запущен ли вычислительный поток и если запущен, то выводит предупреждение.

5.

BOOL Dlg252_OnInitDialog(HWND hwnd, HWND hwndEdit, LPARAM lParam);

Производит инициализацию диалоговой панели. Устанавливает начальные значения и загружает необходимые ресурсы (изображения).

6.

BOOL Dlg252_OnHelp(HWND hwnd, LPARAM lParam);

Действия выполняемые при вызове контекстной помощи на диалоговой панели.

7.

int Dlg252_OnCommand(HWND hwnd, WORD wParam, HWND hwndEdit, UINT codeNotify);

Обработка возможных команд диалоговой панели. Таких как запуск и остановка вычислений, сброс параметров к начальным значениям и др.

    1. Фрагменты исходного кода

В этом разделе приводятся только некоторые фрагменты программного обеспечения (ПО). Полностью текст ПО воспроизводить нецелесообразно, так как он слишком большой и приводится в электронном виде.

BOOL CALLBACK Dates252DialogProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)

{ char s[32];

//////////////////////////////////////////////////////////////////////////////////////////////////////////

switch(uMsg)

{ chHANDLE_DLGMSG(hwnd, WM_INITDIALOG, Dlg252_OnInitDialog);

chHANDLE_DLGMSG(hwnd, WM_COMMAND, Dlg252_OnCommand);

case WM_HELP: { return(!Dlg252_OnHelp(hwnd,lParam)); }

case WM_CLOSE: { if(teploprovodnostparams.bContinue==FALSE)

{ GetWindowText(GetDlgItem(hwnd,ID_EDIT121),s,20); iniID.idtdx = atof(s);

GetWindowText(GetDlgItem(hwnd,ID_EDIT122),s,20); iniID.idtdy =atof(s);

GetWindowText(GetDlgItem(hwnd,ID_EDIT123),s,20); iniID.idtdt = atof(s);

GetWindowText(GetDlgItem(hwnd,ID_EDIT124),s,20); iniID.idtc = atof(s);

//////////////////////////////////////////////////////////////////////////////////////////////////////////

GetWindowText(GetDlgItem(hwnd,ID_EDIT127),s,20); iniID.idtx0 = atof(s);

GetWindowText(GetDlgItem(hwnd,ID_EDIT128),s,20); iniID.idty0 = atof(s);

GetWindowText(GetDlgItem(hwnd,ID_EDIT129),s,20); iniID.idtx1 = atof(s);

GetWindowText(GetDlgItem(hwnd,ID_EDIT130),s,20); iniID.idty1 = atof(s);

GetWindowText(GetDlgItem(hwnd,ID_EDIT131),s,20); iniID.idtx2 = atof(s);

GetWindowText(GetDlgItem(hwnd,ID_EDIT132),s,20); iniID.idty2 = atof(s);

GetWindowText(GetDlgItem(hwnd,ID_EDIT133),s,20); iniID.idtx3 = atof(s);

GetWindowText(GetDlgItem(hwnd,ID_EDIT134),s,20); iniID.idty3 = atof(s);

//////////////////////////////////////////////////////////////////////////////////////////////////////////

GetWindowText(GetDlgItem(hwnd,ID_EDIT135),s,20); iniID.idtt_start0 = atof(s);

GetWindowText(GetDlgItem(hwnd,ID_EDIT136),s,20); iniID.idtt_start1 = atof(s);

GetWindowText(GetDlgItem(hwnd,ID_EDIT137),s,20); iniID.idtt_start2 = atof(s);

GetWindowText(GetDlgItem(hwnd,ID_EDIT138),s,20); iniID.idtt_start3 = atof(s);

//////////////////////////////////////////////////////////////////////////////////////////////////////////

GetWindowText(GetDlgItem(hwnd,ID_EDIT139),s,20); iniID.idt_up = atof(s);

GetWindowText(GetDlgItem(hwnd,ID_EDIT140),s,20); iniID.idt_down = atof(s);

GetWindowText(GetDlgItem(hwnd,ID_EDIT141),s,20); iniID.idt_left = atof(s);

GetWindowText(GetDlgItem(hwnd,ID_EDIT142),s,20); iniID.idt_right = atof(s);

//////////////////////////////////////////////////////////////////////////////////////////////////////////

iniID.idUseWinSystem=(int)SendMessage(GetDlgItem(hwnd,ID_SE_WIN_SYSTEM),BM_GETCHECK,0L,0L);

/////////////////////////////////////////////////////////////////////////////////////////////////////////

iniID.inComBox318=ComboBox_GetCurSel(GetDlgItem(hwnd,ID_COMBOBOX318)); MemModRastrTT=32*(iniID.inComBox318+1);

iniID.inComBox319=ComboBox_GetCurSel(GetDlgItem(hwnd,ID_COMBOBOX319));

iniID.inComBox320=ComboBox_GetCurSel(GetDlgItem(hwnd,ID_COMBOBOX320));

//////////////////////////////////////////////////////////////////////////////////////////////////////////

iniID.inComBox301=iniID.inComBox900=iniID.inComBox318; Synchronizatia_Mod_Lit_Scan();

//////////////////////////////////////////////////////////////////////////////////////////////////////////

iniID.idtLe = iniID.idtdx*(32*(iniID.inComBox318+1)); _gcvt(iniID.idtLe,4,s); SetWindowText(GetDlgItem(hwnd,ID_EDIT125),s);

=iniID.idtSe = iniID.idtLe*iniID.idtLe; _gcvt(iniID.idtSe,4,s); SetWindowText(GetDlgItem(hwnd,ID_EDIT126),s);

//////////////////////////////////////////////////////////////////////////////////////////////////////////

Schrodinger_Razmer_LF(); Schrodinger_Razmer_LR(); Schrodinger_Razmer_LT(); Schrodinger_Razmer_LB();

//////////////////////////////////////////////////////////////////////////////////////////////////////////

GetWindowRect(hMakeShape252,&iniID.WndwDlg252); iniID.iWndwDlg252=1; Zapis_Dannich_22(); hMakeShape252=0; EndDialog(hwnd,TRUE);

}

else if(teploprovodnostparams.bContinue==TRUE)

{ MessageBeep(MB_OK); MessageBox(NULL, "Работает поток решения Ур. Теплопроводности.\nВыход из диалога\n\nНЕ ВОЗМОЖЕН\n\nдо тех пор, пока работает этот поток.\n\nОстановите поток красной кнопкой 'STOP'.", "Проверка параметров. Информация", MB_OK | MB_TOPMOST | MB_ICONSTOP); }

MessageBeep(MB_OK); break;

}

}

return FALSE;

}

12

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]