int      FuncNum; //Номер целевой функции 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

int      FuncNum; //Номер целевой функции

Поиск

struct DFPPARAMS

{

double   eps; //точность

int      FuncNum; //Номер целевой функции

int      IterNum; //Номер текущей итерации

int      n;  //Размерность задачи

double*  x0; //Начальная точка и вектор-результат

double   GoalValue;//Текущее значение целевой функции

bool     Terminate;//Требование останова 

HWND     CallingWin;//Идентификатор вызывающего окна

bool     Error; //Флаг наличия ошибки в решателе

};

 

Определяем глобальную переменную в "DFPDialog.cpp":

 

DFPPARAMS volatile g_dfpp;

 

Если эта переменная не видна в каком-то из файлов – объявим ее через extern вначале подходящего заголовочного файла:

 

extern DFPPARAMS volatile g_dfpp;

 

Оповещение основного потока о завершении рабочего потока должно выполняться новым пользовательским сообщением (сообщение, используемое решателем задачи из файла тут не подходит, т.к. одновременно могут выполняться оба рабочих потока и может быть неясно какой из них закончил работу). Создаем для него идентификатор в файле "Optimizer.h":

 

#define WM_THREADFINISHED_DFP WM_USER+6

 

и обработчик OnThreadFinishedDFP в классе диалога (по аналогии с обработчиком сообщения WM_THREADFINISHED, обсуждавшимся ранее). Теперь, однако, нам не потребуется модифицировать строку состояния. Вместо этого нужно вернуться к исходному состоянию кнопок "Start" и "Stop":

GetDlgItem(IDC_START)->EnableWindow(TRUE);

GetDlgItem(IDC_STOP)->EnableWindow(FALSE);

 

Проверим последовательность обращения к элементам управления в нашем диалоговом окне на случай, если пользователь будет обращаться к ним не при помощи мышки, а с использованием клавиши табуляции. Выберите мышкой в редакторе ресурсов диалоговое окно или один из элементов управления. В главном меню выберите Layout -> Tab Order. При этом все элементы управления в пользовательском окне будут пронумерованы. В соответствии с присвоенными номерами осуществляется и доступ при нажатии пользователем табуляции.

 

Каждый элемент StaticText должен иметь номер на единицу меньший, чем соответствующий ему элемент управления, получающий ввод от пользователя (конечно, если такой существует). В случае сопоставления какому-либо элементу Static Text «горячей» клавиши, с ней будет связан элемент управления, стоящий следом за данным StaticText.

 

С помощью мышки установите нужный порядок обращения к элементам управления. Для этого щелкните мышкой на каждом элементе управления в нужном порядке. После этого вызовите из основного меню Layout->Tab Order и режим установки порядка будет отменен.

 

Кроме того, следует проверить корректность назначения элементам управления "горячих клавиш". Важно проследить за тем, чтобы одна и та же буква не использовалась в качестве горячей клавиши более одного раза. Для этого нужно осуществить следующие действия:

 

Щелкните на каком-либо элементе управления правой кнопкой мыши и выберите Check Mnemonics. Если обнаружены конфликты, то вам будет предложено сделать исправления.



Поделиться:


Последнее изменение этой страницы: 2024-06-27; просмотров: 46; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.236 (0.009 с.)