Мы поможем в написании ваших работ!
ЗНАЕТЕ ЛИ ВЫ?
|
virtual CDocument* CFrameWnd::GetActiveDocument()
Содержание книги
- Общие сведения о сообщениях Win32
- Аппаратные (входные данные от мыши, клавиатуры и таймера);
- Список (list Box) –элемент отображения списка элементов, позволяющий пользователю выбрать один или несколько из них.
- пиктограммы (icons) – битовые массивы, использующиеся для визуального представления различных объектов в системе.
- CCmdTarget - базовый класс для всех объектов, которые могут получать и отправлять сообщения.
- Шаг2. Выбираем «An empty project»
- Макросы-компоненты карты сообщений
- 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 )
- обновляет содержимое элементов управления на экране
virtual CDocument* CFrameWnd::GetActiveDocument()
возвращает указатель на документ, ассоциированный с текущим активным представлением.Если такого нет, то NULL.
А т.к. документ отвечает за сохранение данных на диске, в нем есть метод
const CString& CDocument::GetPathName()
возвращает полный путь к файлу документа. Строка будет пустой, если документ еще не был сохранен или с ним не ассоциирован никакой файл.
Теперь мы можем создать объект с исходными данными задачи, прочитать туда данные задачи из файла, и заполнить соответствующие поля структуры типа ThreadParams.
2 способ (более сложный): получение данных непосредственно из документа. В данном случае, данные хранятся в представлении – наследнике класса CEditView. Получить текст можно с помощью функции
void CWnd::GetWindowText(CString &rString)
После этого необходимо провести разбор полученной строки (фактически, интерпретацию) для выделения данных.
После того, как данные задачи так или иначе получены, осталось заполнить поле hWnd структуры ThreadParams. Для этого идентификатор окна Win32, ассоциированного с объектом класса CChildWnd (как и любого другого объекта-окна MFC) можно получить методом
HWND CWnd::GetSafeHwnd()
(если с данным объектом не связано никакое окно Win32, GetSafeHwnd возвратит NULL).
В файле “ChildFrm.cpp” вводим в созданную уже заготовку функции-обработчика код примерно такого содержания:
void CChildFrame::OnSolveThis()
{
if (m_thisThreadParams.pProblem) return;
try
{
|