Мы поможем в написании ваших работ!
ЗНАЕТЕ ЛИ ВЫ?
|
Шаблон диалога, хранящийся в файле ресурсов, описывает форму, размер и расположение на экране блока диалога и каждого из его внутренних элементов управления.
Содержание книги
- afx_msg void OnLButtonUP(UINT nFlags, CPoint point);
- Nmhdr *pnotifystruct, //указатель на структуру с данными
- Посылает сообщение в объект класса cwnd или его потомка, непосредственно вызывая оконную процедуру, и не выходит из нее, пока та не обработает сообщение;
- strMessageText.Format("Error number %d", nError);
- Архитектура «Документ-представление» и MDI-приложения
- HMENU CMDIChildWnd::m_hMenuShared
- дескриптор меню, ассоциированного с окном “MDI child”.
- CDocument* CView:: GetDocument()
- Динамическое создание с помощью конструктора
- virtual POSITION CDocument::GetFirstViewPosition()
- Класс шаблона cdoctemplate в приложении отвечает за взаимодействие документов, их представлений и фреймов. В MDI приложении используется его потомок cmultidoctemplate.
- CMultiDocTemplate* pDocTemplate;
- CFrameWnd* pFrame,CDocument* pDoc, BOOL bMakeVisible=TRUE);
- POSITION CWinApp::GetFirstDocTemplatePosition()
- Документ, связанный с активным представлением
- AFX_THREADPROC pfnThreadProc, // Глобальная функция потока
- UINT Msg, // идентификатор сообщения
- Solver* pSolver; //Solver to use
- virtual CDocument* CFrameWnd::GetActiveDocument()
- SendMessage(WM_COMMAND,ID_FILE_SAVE,0);
- while (::GetMessage(&msg, NULL,0,0))
- Объекты, объявленные как volatile, не подвержены оптимизации и временному хранению в регистрах, но читаются и записываются каждый раз напрямую в память.
- if (!m_thisThreadParams.pResults) return 1;
- if (m_thisThreadParams.pResults)
- ID_SEPARATOR, // status line indicator
- m_wndStatusBar.SetPaneText(1,"");
- TODO: Add your message handler code here
- Нажимаем на элементе “решить” мышку и переносим его на место между пунктами ”window” и ”help” (для порядка).
- Separator – элемент представляет собой горизонтальную разделительную линию
- Object IDs:-> IDM_SOLVE_CONV.
- Шаблон диалога, хранящийся в файле ресурсов, описывает форму, размер и расположение на экране блока диалога и каждого из его внутренних элементов управления.
- CMyDialog::CMyDialog(CWnd* pParent /*=NULL*/)
- правой кнопкой)->Ok->Properties->ID:"IDC_START"
- В правом верхнем углу ставим Static Text "&Начальная точка:".
- Имя этого класса должно обязательно (. ) соответствовать вашему методу решения задачи выпуклой оптимизации. Иначе задача на практике приниматься не будет.
- class CMyDialog : public CDialog
- BOOL cwnd::updatedata( BOOL bsaveandvalidate = TRUE )
- void CMyDialog::DoDataExchange(CDataExchange* pDX)
- Vs2005: правой кнопкой на элементе -> Add variable)
- View->ClassWizard->Message Maps->ClassName:"CDFPDialog"->
- int CListBox::AddString( LPCTSTR lpszItem )
- int CListBox::DeleteString( UINT nIndex )
- обновляет содержимое элементов управления на экране
- void CDFPDialog::OnSelchangeCoordList()
- BOOL cwnd::enablewindow(bool benable = TRUE)
- int FuncNum; //Номер целевой функции
- Критическая секция, ее применение в нашем проекте
- И на каждой итерации перед обновлением поля goalvalue вставим
- ResourceView->Optimizer resources –R->
- void CDFPDialog::OnTimer(UINT nIDEvent)
Шаблон диалога, хранящийся в файле ресурсов, описывает форму, размер и расположение на экране блока диалога и каждого из его внутренних элементов управления.
Для работы с окнами диалога библиоткеа MFC предоставляет специальный класс CDialog, производный от CWnd.
О втором компоненте:
Для создания объекта модального окна диалога на основе шаблона из файла ресурсов используется конструктор
CDialog:: CDialog( UINT nIDTemplate, CWnd *pParentWnd=NULL)
где nIDTemplate определяет шаблон через идентификационный номер ресурса, а второй параметр указывает на объект родителя или владельца, которому принадлежит окно диалога. Если этот параметр равен NULL, то родителем считается основное окно приложения.
Следующим шагом является создание диалогового окна. Для этого имеется соответствующий метод
virtual int CDialog::DoModal()
который создает и активизирует модальное диалоговое окно, осуществляет все взаимодействие с пользователем и удаляет это окно после завершения работы с ним. Возвращает результат взаимодействия с пользователем: IDOK, IDCANCEL или –1, если не удалось создать окно.
Наполнением 3-го компонента мы займемся позднее.
Несмотря на то, что диалоговое окно – тоже окно Windows, для него имеются специфические сообщения. Одним из основных является сообщение WM_INITDIALOG, которое посылается процедуре модального диалогового окна во время вызова функции DoModal после того как были созданы окна всех его элементов управления, но до того как они стали видимыми. В ответ на это сообщение процедура диалогового окна проводит инициализацию элементов управления в функции
virtual BOOL CDialog::OnInitDialog()
Кроме того, при желании, здесь можно, например, заполнить список элементами, с которыми потом будет работать пользователь и провести другие подготовительные действия. Для этого необходимо переопределить данную функцию в своем классе и обязательно вызвать OnInitDialog базового класса для корректной инициализации.
Чтобы дополнить существующий проект модальным диалоговым окном, сделайтеследующее:
1. Используя редактор ресурсов, создайте диалоговый ресурс с элементами управления.Редактор обновит файл описания ресурсов вашего проекта, включив в него новый ресурс, а также обновит файл resource.h, дополнив его соответствующими константами.
2. С помощью Class Wizard создайте класс диалогового окна, производный от CDialog, и закрепите его за ресурсом, созданным в п. 1 (позднее обсудим как это делать). ClassWizard добавит в проект требуемый код и заголовочный файл. При генерации производного класса диалогового окна ClassWizard формирует конструктор вида:
|