Загрузить PDF
Загрузить PDF
Вы никогда не задумывались, как сделаны такие программы, как Paint или калькулятор? Ну, узнайте тогда, как создать простое приложение, используя это пошаговое руководство.
Шаги
-
Приобретите компилятор. Компилятор преобразует необработанный исходный код (который вы скоро напишете) в исполняемое приложение. Для целей этого урока приобретите DEV-CPP IDE. Вы можете скачать его здесь here .
-
Установив DEV-CPP, откройте его. Вам будет представлено окно с текстовой областью, где вы будете писать свой исходный код.
-
Подготовьтесь к написанию программы для отображения текста в текстовом поле. Перед тем как начать писать исходный текст, имейте в виду, что приложения Win32 не ведут себя таким же образом, как другие языки, такие как JAVA.
-
В главном окне DEV- CPP перейдите в меню File -> New -> Project. Вам будет предложено другое окно. Выберите небольшую картинку с названием "Windows Application" и установите язык как "C", а не "C++." В текстовом поле, где написано "Name", введите "SimpleProgram". Далее DEV-CPP спросит вас, куда вы хотите сохранить его. Сохраните файл в любом каталоге, но только убедитесь, что сохранили его. Как только закончите с этим, вам будет представлен шаблон на экране источника. Нажмите Ctrl + A, а затем Backspace. Причина, почему мы делаем так, это то, что мы можем начинать заново.
-
В начале вашего исходного текста напишите "#include <windows.h>" (без кавычек). Это включает в себя библиотеку windows, так что вы можете создавать приложение. Прямо под этим напишите: #include "resource.h" И затем введите: const char g_szClassName[] = "myWindowClass";
-
Напишите один способ для обработки всех сообщений и напишите другой метод, где мы будем обрабатывать сообщения из ресурсов. Не волнуйтесь, если вас это смущает. Все станет ясно в дальнейшем. Теперь сохраните ваш источник как SimpleProg.c. На данный момент мы оставив все как есть.
-
Создайте скрипт ресурса Resource Script. Resource Script является частью исходного кода, который определяет все элементы управления (например,TextBox, Buttons, и т.д.). Вы включите Resource Script в вашу программу и вуаля! У вас будет программа. Написать Resource Script хоть и просто, но это может занять много времени, если у вас нет Visual Editor. Это потому, что вам нужно будет подсчитать приблизительно точные X и Y координаты элементов управления и т.д. В главном окне DEV-CPP перейдите в меню File -> New -> Resource File. DEV-CPP спросит вас: "Add resource file to current Project?". Нажмите YES. В верхней части вашего скрипта ресурса введите #include "resource.h", and also type #include <afxres.h> Это касается всех элементов управления.
-
Создайте свой первый элемент управления: простое меню. Введите:
IDR_THEMENU MENU BEGIN POPUP "&File" BEGIN MENUITEM "E&xit" , ID_FILE_EXIT END END
-
Теперь что касается кнопки. Ваша кнопка будет внутри диалогового окна, поэтому мы должны создать его в первую очередь. Сделайте это, набрав:
IDD_SIMPLECONTROL DIALOG 50 , 50 , 150 , 142 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU MENU IDR_THEMENU CAPTION "Simple Prog" FONT 8 , "MS Sans Serif" BEGIN DEFPUSHBUTTON "Hello!" , ID_HELLO , 10 , 10 , 40 , 15 END
-
Вот и все! Мы закончили с нашим скриптом ресурса. Только еще одно: мы должны присвоить значения всем величинам, которых мы определили в нашем скрипте ресурсов (например, IDR_THEMENU, и т.д.). Сохраните файл ресурса как SimpleProg.rc
-
Выберите File -> New -> Source File. Add the source file to the current project? -> Yes. Вам будет предложен пустой экран. Для присвоения значений нашим определенным элементам управления мы даем им числа. Не имеет большого значения, каким числам вы присваиваете элементы управления, но они должны быть организованными. Например, не определяйте элемент управления, присвоив ему случайное число (как 062 491 или пр.). Поэтому введите:
#define IDR_THEMENU 100 #define ID_FILE_EXIT 200 #define IDD_SIMPLECONTROL 300 #define ID_HELLO 400
-
Сохранить этот файл как resource.h . Помните, как мы писали "#include "resource.h""? Ну, вот почему мы это сделали. Нам нужно было присвоить значения.
-
Вернитесь к ресурсу, нашему SimpleProg.c или тому, как его вы назвали. Введите:
int WINAPI WinMain ( HINSTANCE hInstance , HINSTANCE hPrevInstance , LPSTR lpCmdLine , int nCmdShow ){ return DialogBox ( hInstance , MAKEINTRESOURCE ( IDD_SIMPLECONTROL ), NULL , SimpleProc );}
-
Не беспокойтесь слишком о всех технических нюансах здесь. Просто знайте, что это части возвращают диалоговое окно к нашей процедуре обработки сообщений, называемой SimpleProc.
-
Введите: BOOL CALLBACK SimpleProc(HWND hWndDlg, UINT Message, WPARAM wParam, LPARAM lParam){switch(Message){case WM_INITDIALOG:return TRUE;case WM_COMMAND:switch ( LOWORD (wParam) ) {case ID_HELLO:MessageBox(NULL,"Hey", "Hallo!", MB_OK)break; case ID_FILE_EXIT:EndDialog(hWndDlg, 0);break;}break;case WM_CLOSE:EndDialog(hWndDlg, 0); break; default: return FALSE;}return TRUE;}
-
Эта часть обрабатывает диалоговые сообщения. Например, в случае ID_HELLO (наша кнопка), мы создаем окно сообщения с содержанием "Hello!". Кроме того, в случае, когда переходим в File и Exit, мы закрываем окно в случае ID_FILE_EXIT.
-
Убедитесь, что ваш SimpleProc предшествует части int WINAPI WINMAIN ! Это важно, если вы хотите, чтобы ваша программа работала.
-
Нажмите F9, чтобы скомпилировать и запустить программу!Реклама
Советы
- Если вы расстроены (на любом этапе работы) - отдохните и вернитесь обратно.
- Это учебник для начинающих, так много частей не объясняются. Даже если это учебник для начинающих, рекомендуется, чтобы у вас был некоторый опыт в области программирования (например, знание switch statments, if-else, и т.д.)
- Если вы запутались, есть много учебников, доступных в Интернете.
Реклама
Предупреждения
- Изучение Win32 не является легкой задачей. Вам нужно обратить внимание на это. Это, безусловно, не для слабонервных.
- Нумерация строк в этом учебнике несколько искажает исходный код.
Реклама
Реклама