Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Пример программы.

Читайте также:
  1. Begin {начало основной программы} . . .
  2. Begin {начало основной программы} . . .
  3. I Пример слияния в MS WORD 2003. Изучите материал и выполните пример на компьютере.
  4. I. Примерный перечень вопросов рубежного контроля.
  5. II. Организация и программы Олимпийских игр.
  6. II. Примерный перечень вопросов к зачету (экзамену) по всему курсу.
  7. II. ТРЕБОВАНИЯ К РЕЗУЛЬТАТАМ ОСВОЕНИЯ ОСНОВНОЙ ОБРАЗОВАТЕЛЬНОЙ ПРОГРАММЫ НАЧАЛЬНОГО ОБЩЕГО ОБРАЗОВАНИЯ
message handling II.hpp #include <afxwin.h> // Класс основного окна class CMainWin: public CFrameWnd { public: CMainWin(); afx_msg void OnPaint(); // Обработчик сообщения WM_DESTROY afx_msg void OnDestroy(); // Обработчик сообщения WM_TIMER afx_msg void OnTimer(UINT ID); char str[50]; DECLARE_MESSAGE_MAP() }; // Класс приложения class CApp: public CWinApp { public: BOOL InitInstance(); }; message handling II.cpp #include <afxwin.h> #include <time.h> #include <string.h> #include "MESSAGE HANDLING - II.HPP" // Реализация BOOL CApp::InitInstance() { m_pMainWnd = new CMainWin; m_pMainWnd->ShowWindow(SW_RESTORE); m_pMainWnd->UpdateWindow(); // Установка таймера с идентификатором 1 и // интервалом 500 мс m_pMainWnd->SetTimer(1, 500, 0); return TRUE; } CMainWin::CMainWin() { // Определение прямоугольника, в котором будет // размещено окно RECT rect; rect.left = rect.top = 10; rect.right = 200; rect.bottom = 60; // Создание окна в определенном экранном // прямоугольнике this->Create(0, "CLOCK", WS_OVERLAPPEDWINDOW, rect); strcpy(str, ""); } // Реализация карты сообщений главного окна BEGIN_MESSAGE_MAP(CMainWin, CFrameWnd) ON_WM_PAINT() ON_WM_DESTROY() ON_WM_TIMER() END_MESSAGE_MAP() afx_msg void CMainWin::OnPaint() { CPaintDC dc(this); // Выводим в окно строку текущего времени dc.TextOut(1, 1, " ", 3); dc.TextOut(1, 1, str); } afx_msg void CMainWin::OnTimer(UINT ID) { // Предполагаем, что в программе один таймер, поэтому // не проверяем ID. // Получаем строку текущего времени CTime curtime = CTime::GetCurrentTime(); tm *newtime; newtime = curtime.GetLocalTm(); sprintf(str, asctime(newtime)); str[strlen(str) - 1] = '\0'; // Посылаем сообщение WM_PAINT -- его обработчик // отобразит строку. this->InvalidateRect(0); } afx_msg void CMainWin::OnDestroy() { // При закрытии окна удаляем связанный с ним // таймер. KillTimer(1); } CApp App; // Единственный экземпляр приложения.


Рис. 4. Программа-"часы"


Мы получаем текущее время с помощью класса CTime. Это еще один полезный класс общего назначения из MFC. Вы можете использовать приведенный выше код для получения текущего локального времени. Также, мы при создании окна явно задали координаты прямоугольника, в котором оно должно быть отображено, с помощью структуры RECT. Таким образом, всегда можно задать начальные размеры и положение окна на экране.

 


Дата добавления: 2015-07-20; просмотров: 86 | Нарушение авторских прав


Читайте в этой же книге: История | Исходные тексты примера | Включение обработчиков сообщений в описание класса | Сообщение WM_PAINT | Методичні рекомендації щодо написання рефератів |
<== предыдущая страница | следующая страница ==>
Пример программы| ТЕМАТИКА РЕФЕРАТІВ

mybiblioteka.su - 2015-2024 год. (0.005 сек.)