![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
witeman |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 29.3.2005 Где: г.Тюмень Репутация: нет Всего: нет |
В одной из сред разработки, которой я пользуюсь (Dev-С++), возможно воспользоваться шаблонами, один из которых "Windows
Application". Создав следующий проект, я получаю следующий исходник : #include <windows.h> /* Declare Windows procedure */ LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM); /* Make the class name into a global variable */ char szClassName[ ] = "WindowsApp"; int WINAPI WinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nFunsterStil) { HWND hwnd; /* This is the handle for our window */ MSG messages; /* Here messages to the application are saved */ WNDCLASSEX wincl; /* Data structure for the windowclass */ /* The Window structure */ wincl.hInstance = hThisInstance; wincl.lpszClassName = szClassName; wincl.lpfnWndProc = WindowProcedure; /* This function is called by windows */ wincl.style = CS_DBLCLKS; /* Catch double-clicks */ wincl.cbSize = sizeof (WNDCLASSEX); /* Use default icon and mouse-pointer */ wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION); wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION); wincl.hCursor = LoadCursor (NULL, IDC_ARROW); wincl.lpszMenuName = NULL; /* No menu */ wincl.cbClsExtra = 0; /* No extra bytes after the window class */ wincl.cbWndExtra = 0; /* structure or the window instance */ /* Use Windows's default color as the background of the window */ wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND; /* Register the window class, and if it fails quit the program */ if (!RegisterClassEx (&wincl)) return 0; /* The class is registered, let's create the program*/ hwnd = CreateWindowEx ( 0, /* Extended possibilites for variation */ szClassName, /* Classname */ "Application", /* Title Text */ WS_OVERLAPPEDWINDOW, /* default window */ CW_USEDEFAULT, /* Windows decides the position */ CW_USEDEFAULT, /* where the window ends up on the screen */ 200, /* The programs width */ 200, /* and height in pixels */ HWND_DESKTOP, /* The window is a child-window to desktop */ NULL, /* No menu */ hThisInstance, /* Program Instance handler */ NULL /* No Window Creation data */ ); /* Make the window visible on the screen */ ShowWindow (hwnd, nFunsterStil); /* Run the message loop. It will run until GetMessage() returns 0 */ while (GetMessage (&messages, NULL, 0, 0)) { /* Translate virtual-key messages into character messages */ TranslateMessage(&messages); /* Send message to WindowProcedure */ DispatchMessage(&messages); } /* The program return-value is 0 - The value that PostQuitMessage() gave */ return messages.wParam; } /* This function is called by the Windows function DispatchMessage() */ LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) /* handle the messages */ { case WM_DESTROY: PostQuitMessage (0); /* send a WM_QUIT to the message queue */ break; default: /* for messages that we don't deal with */ return DefWindowProc (hwnd, message, wParam, lParam); } return 0; } Меня это одновременно и удивило и обрадовало. С одной стороны это был практически непонятный исходный код (некоторые вещи мне всё-таки были понятны. свойственные "чистому С++"), ведь обычно я пользуюсь средой C++ Buider, в которой иной подход к созданию приложений. А с другой стороны "вес" этого приложения был значительно меньше его "Борландского собрата" всего лишь 95,3КБ(!) по сравнению с 440 КБ. Так вот ,собственно, в чём мой вопрос: подскажите мне материаллы по данной теме или сами объясните что к чему. Заранее неимоверно блпгодарен :-). ![]() |
|||
|
||||
Fixin |
|
||||
![]() Ёжик ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1357 Регистрация: 6.1.2004 Репутация: 2 Всего: 18 |
![]() |
||||
|
|||||
TheBoss |
|
|||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 12.6.2005 Где: Санкт-Петербург Репутация: нет Всего: нет |
Почитай Румянцева. У него вполне все доступно описано.
|
|||
|
||||
mr.Anderson |
|
|||
![]() iOS Lead Developer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: нет Всего: 128 |
Ничего себе, доступно!
![]() ![]() |
|||
|
||||
WERITAS |
|
|||
******** ![]() ![]() Профиль Группа: Участник Сообщений: 582 Регистрация: 2.5.2005 Где: Москва Репутация: нет Всего: 5 |
А уж объем кода вообще меня убил
Угу, и мя тоже ![]() -------------------- Арт-менеджер клуба, разрешивший концерт Алексея Глызина, уволен с формулировкой "Мудак" |
|||
|
||||
mr.Anderson |
|
|||
![]() iOS Lead Developer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: нет Всего: 128 |
Ну, и я о том. Это ж кошмар - по Румянцеву, чтобы вывести сообщение в окне "Hello world", надо написать в два раза больше, чем в первом посте этой темы. И написано:
Ха-ха! Три раза! В Борланде для этого надо только проект создать и скомпайлить его. ![]() |
|||
|
||||
Дрон |
|
|||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург Репутация: 10 Всего: 93 |
И это нормально. А вообще: НЕ ФЛЕЙМИМ! -------------------- Да. Именно так. |
|||
|
||||
mr.Anderson |
|
|||
![]() iOS Lead Developer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: нет Всего: 128 |
Что нормально? Этот код - это нормально?! Да вы что! Столько писать ради простого сообщения, а сколько понадобится для большой программы?! |
|||
|
||||
Дрон |
|
|||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург Репутация: 10 Всего: 93 |
А что делать? Зато получаешь полный контроль над работой программы. И кстати, вся эта куча кода в основном для создания окна. Текст выводится, скорее всего, одной командой TextOut. -------------------- Да. Именно так. |
|||
|
||||
mr.Anderson |
|
|||
![]() iOS Lead Developer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: нет Всего: 128 |
О чем и разговор. Лучше через Билдер - вообще никакой возни не надо. Создал форму, скомпилил - и готово! И все есть. Безо всякой фигни на две страницы. |
|||
|
||||
Дрон |
|
|||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург Репутация: 10 Всего: 93 |
sim7
Смотря какова цель. Но здесь я чувствую, объяснять что-то бесполезно. В общем, ещё одно высказывание здесь в таком же духе -- получишь минус за флейм. -------------------- Да. Именно так. |
|||
|
||||
witeman |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 29.3.2005 Где: г.Тюмень Репутация: нет Всего: нет |
Спасибо всем вам ребята, вы мне сильно помогли разобраться с этой емой всем очень благодарен
![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |