10.10.2015, 16:00 | #1 (ссылка) |
Новичок
Регистрация: 27.07.2012
Сообщений: 82
Репутация: 1
|
программирование графического интерфейса с помощью WINApi на C++
Надо сделать лабу.
Пока сделал только это: Код:
#include "stdafx.h" #include "yap3.h" #include <fstream> #include <iostream> using namespace std; #define MAX_LOADSTRING 100 #define IDB_CANCEL 3002 //Идентификатор кнопки отмена #define IDB_SAVE 3001 //Идентификатор кнопки Сохранить #define IDE_FIELD 3003 //Идентификатор поля для ввода имя файла #define IDE_AREA 3004 //Идентификатор поля для ввода того, что сохраниться в файле // Глобальные переменные: HINSTANCE hInst; // текущий экземпляр WCHAR szTitle[MAX_LOADSTRING]; // Текст строки заголовка WCHAR szWindowClass[MAX_LOADSTRING]; // имя класса главного окна HWND hWnd; //десктриптор главного окна HWND Savebuttom; //дескриптор кнопки Сохранить HWND Cancelbuttom; //дескриптор кнопки Отмена HWND TextField; // дестриптор "edit" де будет именя файла HWND TextArea; // дестриптор "edit"где впишется текст char chText[70]; //имя файла char Text[100]; // текст файла WORD cbCount = 0; //размер текста в файле //Здесь стандартный winmain // // ФУНКЦИЯ: MyRegisterClass() // // НАЗНАЧЕНИЕ: регистрирует класс окна. // ФУНКЦИЯ: InitInstance(HINSTANCE, int) // // НАЗНАЧЕНИЕ: сохраняет обработку экземпляра и создает главное окно. LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { ofstream Write; cbCount = 0; ifstream read; switch (message) { case WM_CREATE: GetClientRect(hWnd, &rect); Savebuttom = CreateWindowW(L"button", L"Сохранить", WS_CHILDWINDOW | BS_PUSHBUTTON | WS_VISIBLE, rect.left + 100, rect.bottom-100, 100, 50, hWnd, (HMENU) IDB_SAVE, hInst, NULL); Cancelbuttom = CreateWindowW(L"button", L"Отменить", WS_CHILDWINDOW | BS_PUSHBUTTON | WS_VISIBLE, rect.right - 200, rect.bottom - 100, 100, 50, hWnd,(HMENU) IDB_CANCEL, hInst, NULL); EnableWindow(Cancelbuttom,FALSE); TextField = CreateWindowW(L"edit", L"Текстовое поле", WS_CHILDWINDOW | ES_AUTOHSCROLL | WS_VISIBLE | ES_LEFT | WS_BORDER| ES_OEMCONVERT, rect.right/2.-100, rect.bottom/2.-100, 200, 20, hWnd, (HMENU)IDE_FIELD, hInst, NULL); TextArea= CreateWindowW(L"edit", L"Текстовая область", WS_CHILDWINDOW | WS_VISIBLE | WS_BORDER | ES_MULTILINE, rect.right / 2.-100, rect.bottom / 2.-50, 200, 300, hWnd, (HMENU) IDE_AREA, hInst, NULL); break; case WM_COMMAND: { switch (LOWORD(wParam)) { case IDM_ABOUT: DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About); break; case IDM_EXIT: DestroyWindow(hWnd); break; case IDE_FIELD: /*if (!cbCount) { chText = "text.txt"; }*/ break; case IDB_SAVE: cbCount = SendMessage(TextField, EM_GETLINE, 20, (LPARAM)chText); Write.open(chText); cbCount = SendMessage(TextArea, EM_GETLINE, 20, (LPARAM)Text); MessageBox(hWnd,chText, "Имя файла ", MB_OK); MessageBox(hWnd,Text, "Текст файла ", MB_OK); Write << Text; Write.close(); case IDB_CANCEL: read.open(chText); break; return DefWindowProc(hWnd, message, wParam, lParam); } } break; case WM_PAINT: { PAINTSTRUCT ps; HDC hdc = BeginPaint(hWnd, &ps); // TODO: Добавьте сюда любой код прорисовки, использующий HDC... EndPaint(hWnd, &ps); } break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hWnd, message, wParam, lParam); } return 0; } // Обработчик сообщений для окна "О программе". INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) { UNREFERENCED_PARAMETER(lParam); switch (message) { case WM_INITDIALOG: return (INT_PTR)TRUE; case WM_COMMAND: if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL) { EndDialog(hDlg, LOWORD(wParam)); return (INT_PTR)TRUE; } break; } return (INT_PTR)FALSE; } Делать лабу полностью не надо, лишь объяснить почему не создаётся и не сохраняется файл, а остальное я думаю сам сдюжу. В крайнем случае спрошу здесь. Очень надеюсь на вашу помощь! |
10.10.2015, 16:01 | #2 (ссылка) |
Новичок
Регистрация: 27.07.2012
Сообщений: 82
Репутация: 1
|
Задание такое: Пользователь в текстовое поле указывает имя файла и вводит текст в текстовую область. При нажатии кнопки "Сохранить" текст записывается в файл. При нажатии кнопки "Отменить" - в текстовую область загружается содержимое файла, если он был сохранен. Кнопка "Отменить" должна быть доступна только если пользователь сохранил файл и изменил текст после сохранения. Если имя файла не указано, то оно задается автоматически - text.txt.
|
Ads | |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Неверное отображение графического файла | BoBa65 | Графика | 3 | 23.03.2013 20:11 |
Как увеличить резкость графического файла? | Базаров | Графика | 2 | 08.01.2013 15:53 |
Сброс графического ускорителя | VEROVOLINE | Неисправности, настройка | 8 | 08.10.2012 02:14 |
winapi | Gard | Программирование | 0 | 26.08.2011 20:14 |
Програмируем в интернете на WinApi,C++,Masm32 | Serhii Parvuliusov | Веб-строительство | 0 | 20.10.2007 14:02 |