Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Проектування програми Текстовий Редактор Блокнот

Реферат Проектування програми Текстовий Редактор Блокнот





ndowExW (WS_EX_CLIENTEDGE, L RICHEDIT50W , , WS_VISIBLE | WS_CHILD | ES_MULTILINE, 10, 10, 300, 300, hWnd, (HMENU) 10 ,, NULL);

... (! edit)

{(hWnd, e , e , MB_OK);

return 0;

}


Потім потрібно прописати саме меню верхнього рівня в мітках case. Воно прописується в самій віконної процедурою, тобто в черзі повідомлень. Щоб прописати мітку, що має назву створеної константи, необхідно спочатку створити мітку з назвою WM_COMMAND і в неї вставити окремий switch з параметром LOWORD (wparam) і в ньому прописувати мітки-константи для меню верхнього рівня. Мітка IDM_Enable_Disable перемикає меню вихід, мітки case IDP_Open і IDP_Save призначені для відкриття та збереження текстового файлу, мітка IDP_Print відповідно для роздруківки документів. У меню Правка входять такі мітки як: IDP_Undo, IDP_Cut, IDP_Copy, IDP_Paste і IDP_Find. У меню Вставка входять наступні мітки: IDP_Datetime, IDP_Symbol, IDP_Alpha, IDP_Sigma=19 і IDP_Omega. У меню Формат входить мітка IDP_Font, а в меню Довідка - IDP_Help. Мітка WM_Notifi використовується в якості допоміжної мітки для скасування дії а також вона взаємопов'язана з класом Undo.


. Опис меню верхнього рівня


Для того, щоб прописати всі підпункти меню верхнього рівня, потрібно в першу чергу створити конструкцію з міткою WM_COMMAND, що має вигляд:


... WM_COMMAND:

{(LOWORD (wParam))

{

//Всі мітки меню і підменю

... ... ...

}

}

...


Кожне меню або підменю описується у своїй мітці case.

Меню Файл.

Це меню складається з пунктів: Відкрити, Зберегти, Друк, Включити/виключити вихід, Вихід.

Кожен підпункт меню описується відповідним класом, вбудованим в саму бібліотеку даного компілятора


case IDP_Open: {

//Відкриття файлаfilename [300]; [0]=0; of; .lStructSize=sizeof (of) ;. hwndOwner=hWnd; .hInstance=hInst; .lpstrFilter= texts files 0 * .txt 0 0 raquo ;;. lpstrCustomFilter=NULL; .nMaxCustFilter=0; .nFilterIndex=1; .lpstrFile=filename; .nMaxFile=sizeof (filename) ;. lpstrFileTitle=NULL; .nMaxFileTitle=0; .lpstrInitialDir =NULL; .lpstrTitle= Відкриття файлу raquo ;;. Flags=OFN_FILEMUSTEXIST; .lpstrDefExt= bmp raquo ;;. lCustData=0; .lpfnHook=NULL; .lpTemplateName=NULL; result=GetOpenFileName ( amp; of); ( ! result)

{(hWnd, Error , Помилка , MB_OK) ;;

} f; .open (filename) ;. seekg (0, f.end); size=f.tellg () ;. seekg (0, f.beg); * m=new char [size] ;. read (m, size); (edit, m); (edit); m;

}; IDP_Save :() ;; IDP_Print:

{print_dlg={0}; _ dlg.lStructSize=sizeof (print_dlg); _ dlg.Flags=PD_RETURNDC; result=PrintDlg ( amp; print_dlg); (! result)

{(hWnd, Print Error raquo ;, Чи не видає друк raquo ;, MB_OK);

break;

}

//Висновок тестового тексту на принтер

HDC hdc=print_dlg.hDC; di={sizeof (di)} ;. lpszDocName= qqq.txt raquo ;;

//Підключення до RichEdit (hdc, amp; di); (edit, EM_SETTARGETDEVICE, (WPARAM) hdc, 0); (hdc); (edit, EM_SETSEL, 0, - 1);// Виділити всёfr; .hdc=hdc; .hdcTarget=hdc; .rcPage.left=0; .rcPage.right=100; .rcPage.top=0; .rcPage.bottom=100;(edit,EM_EXGETSEL,0,(LPARAM)amp;frrg);(edit,EM_FORMATRANGE,TRUE,(LPARAM)amp;fr);(hdc);(hdc);

};IDM_Exit:(hWnd,WM_CLOSE,NULL,NULL);;IDM_Enable_Disable:(hFileMenu,IDM_Exit,MF_BYCOMMAND | nFlag);=(nFlag==MF_ENABLED)?MF_GRAYED:MF_ENABLED;=(nIndex==0)?1:0;(hFileMenu,IDM_Enable_Disable,MF_BYCOMMAND|_STRING,IDM_Enable_Disable,pContent[nIndex]);

break;

Меню Правка. Це меню складається з підпунктів: Скасувати, Вирізати, Копіювати, Вставити, Знайти. Для скасування останньої дії використовується клас Undo, який називається стеком. Мітка IDP_Undo посилається на цей клас через покажчик-посилання.


case IDP_Undo:

{* m=undo.removecopy (); (edit, m); (edit); [] m;

}; IDP_Cut: SendMessage (edit, WM_CUT, 0,0) ;; IDP_Copy: SendMessage (edit, WM_COPY, 0,0) ;; IDP_Paste: SendMessage (edit, WM_PASTE, 0,0) ;; IDP_Find:

{.hInstance=hInst;.lStructSize=sizeof(find);.hwndOwner=hWnd;.Flags=FR_DOWN|FR_NOMATCHCASE;.lpstrFindWhat=str;.wFindWhatLen=200;.lpstrReplaceWith=NULL;.wReplaceWithLen=0;.lCustData=0;.lpfnHook=NULL;.lpTemplat...


Назад | сторінка 3 з 8 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Створити меню без файла опису ресурсів за допомогою функцій CreateMenu і Cr ...
  • Реферат на тему: Створення меню без файлу опису ресурсів на основі функції LoadMenuIndirect ...
  • Реферат на тему: Програма складної структури з використанням меню
  • Реферат на тему: Розробка технологічних карт на страви з меню
  • Реферат на тему: Організація Приготування кулінарніх страв згідно меню