Программа для создания окон windows

Здравствуйте, читатели ХабраХабр.
Недавно я начал самостоятельно изучать программирование, и с тех пор во время учебного процесса (ну или процесса примитивной разработки) регулярно сталкиваюсь со следующими проблемами:

лень учиться

— затраты времени и «сил» на организацию окон, с которыми работаешь в данный момент
— присутствие лишних окон, с которыми или в данный момент, или вообще не работаешь (например, консоль запущенного сервера)
— физический недостаток пространства для размещения всех окон, при котором будет удобно работать

Если в Google ввести запрос «менеджер окон Mac», выдается множество результатов утилит — менеджеров окон, обзоры и отзывы. А вот для Windows — полная тишина.
На любимом сервисе Toster мне подсказали несколько утилит, существенно облегчающих организацию рабочего пространства, которыми я теперь пользуюсь сам и хочу поделиться с другими.

Чтобы не тратить время тех, кто о них знает, сразу перечислю: AquaSnap, DIVVY и BetterDesktopTool.
Сам же постараюсь кратко описать их наиболее полезные функции.

AquaSnap

Коронной функцией этой программы считаю

синхронное изменение

размера окон. Странно, что фирме Microsoft в своем популярнейшем ПО с названием «Окна» (Windows) не пришла в голову идея реализовать это.

Также существенным удобством является возможность переместить окно в одну из четвертей (или двух половин) рабочего стола, потянув за его заголовок, или назначить на это горячие клавиши

Лучший способ

влюбиться

оценить все возможности программы можно, посмотрев полное демонстрационное видео.

Небольшое отступление или «камень в огород LG»
В данный момент фирма LG активно рекламирует и пытается внедрить в новых моделях мониторов ту самую функцию синхронного изменения окон, но программное обеспечение работает исключительно криво, а резкие и краткие ответы операторов Call-центра создают впечатление, что маркетологи сработали хорошо, а вот разработчики «немного не успели» реализовать обещанное. Все вышесказанное проверенно и подтверждено покупкой (и последующим возвратом в магазин) монитора LG с заявленной функцией.

DIVVY

Из-за того, что AquaSnap выполняет весь необходимый функционал, я несколько раз устанавливал, а после удалял DIVVY.

Причиной тому является дополнительная неплохая (но мне не очень нужная) функция, позволяющая размещать окно в определенном месте, просто выделив это место на сетке, представляющей схему рабочего стола.

На этот раз на горячие клавиши можно назначить расположение окон не только в одну из четвертей экрана, а в любую, заранее заданную область.
Полное демонстрационное видео

BetterDesktopTool

Во время просмотра презентации новой ОС от Apple я заметил отличный функционал под названием Mission Control, позволяющий отобразить на экране все открытые окна, что визуально облегчает выбор нужного при их большом количестве. Именно это выполняет указанная программа.

Приятным бонусом является возможность создавать виртуальные столы и взаимодействовать с ними с помощью горячих клавиш. Например, я на виртуальный стол всегда «отправляю» ненужные окна (например, консоль запущенного сервера).
Полное демонстрационное видео

Второй монитор

Я очень надеюсь, что однажды стану достойным программистом, но уже сейчас, на стадии обучения, испытываю потребность в увеличении рабочего пространства, для чего планирую приобрести еще один монитор.
Это не программа, но все же, по утверждению многих, отличное решение в подобных ситуациях.
Уверен, что совместное использование описанных утилит и увеличенного рабочего пространства улучшит эффективность работы.

P.S. Пока писал статью, нашел список альтернатив перечисленным программам.
Исходя из этого, буду благодарен за приведение примеров используемых Вами решений и их преимуществ\недостатков для выявления наиболее удачных программ.

P.P.S. Всем высокой продуктивности.

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

Используете ли Вы менеджеры окон?


12.53%
Использую (это удобно)
45


55.15%
Не использую (не возникает необходимость)
198


32.31%
Не использовал, но теперь, возможно, попробую
116

Проголосовали 359 пользователей.

Воздержались 82 пользователя.


Загрузить PDF


Загрузить PDF

Вы никогда не задумывались, как сделаны такие программы, как Paint или калькулятор? Ну, узнайте тогда, как создать простое приложение, используя это пошаговое руководство.

  1. Изображение с названием 46622 1

    1

    Приобретите компилятор. Компилятор преобразует необработанный исходный код (который вы скоро напишете) в исполняемое приложение. Для целей этого урока приобретите DEV-CPP IDE. Вы можете скачать его здесь here.

  2. Изображение с названием 46622 2

    2

    Установив DEV-CPP, откройте его. Вам будет представлено окно с текстовой областью, где вы будете писать свой исходный код.

  3. Изображение с названием 46622 3

    3

    Подготовьтесь к написанию программы для отображения текста в текстовом поле. Перед тем как начать писать исходный текст, имейте в виду, что приложения Win32 не ведут себя таким же образом, как другие языки, такие как JAVA.

  4. Изображение с названием 46622 4

    4

    В главном окне DEV- CPP перейдите в меню File -> New -> Project. Вам будет предложено другое окно. Выберите небольшую картинку с названием «Windows Application» и установите язык как «C», а не «C++.» В текстовом поле, где написано «Name», введите «SimpleProgram». Далее DEV-CPP спросит вас, куда вы хотите сохранить его. Сохраните файл в любом каталоге, но только убедитесь, что сохранили его. Как только закончите с этим, вам будет представлен шаблон на экране источника. Нажмите Ctrl + A, а затем Backspace. Причина, почему мы делаем так, это то, что мы можем начинать заново.

  5. Изображение с названием 46622 5

    5

    В начале вашего исходного текста напишите «#include <windows.h>» (без кавычек). Это включает в себя библиотеку windows, так что вы можете создавать приложение. Прямо под этим напишите: #include «resource.h» И затем введите: const char g_szClassName[] = «myWindowClass»;

  6. Изображение с названием 46622 6

    6

    Напишите один способ для обработки всех сообщений и напишите другой метод, где мы будем обрабатывать сообщения из ресурсов. Не волнуйтесь, если вас это смущает. Все станет ясно в дальнейшем. Теперь сохраните ваш источник как SimpleProg.c. На данный момент мы оставив все как есть.

  7. Изображение с названием 46622 7

    7

    Создайте скрипт ресурса 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> Это касается всех элементов управления.

  8. Изображение с названием 46622 8

    8

    Создайте свой первый элемент управления: простое меню.
    Введите:

    IDR_THEMENU MENU
    BEGIN
    POPUP "&File"
    BEGIN
    MENUITEM "E&xit", ID_FILE_EXIT
    END
    END
    

    Часть «IDR_THEMENU» определяет ваше меню как THEMENU. Вы можете назвать его, как хотите. Часть BEGIN говорит сама за себя. POPUP «&File» создает категорию нового меню под названием File. Символ & позволяет пользователю вашего приложения нажимать Ctrl + F на клавиатуре и быстро получить доступ к меню. The MENUITEM «E&xit», ID_FILE_EXIT добавляет пункт меню в категорию File. Вы должны, однако, определить пункт меню с помощью ID_FILE_EXIT.

  9. Изображение с названием 46622 9

    9

    Теперь что касается кнопки. Ваша кнопка будет внутри диалогового окна, поэтому мы должны создать его в первую очередь. Сделайте это, набрав:

    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
    

    Часть IDD_SIMPLECONTROL определяет ваш диалог. Четыре цифры после слова «DIALOG» определяют х-позицию, у-позицию, ширину и высоту диалогового окна. Не волнуйтесь слишком о части Style на данный момент. Часть MENU IDR_THEMENU помещает наше старое меню в программу. Часть CAPTION говорит сама за себя, как и шрифт. Часть DEFPUSHBUTTON создает нашу кнопку с названием «Hello!» и определим ее, написав ID_HELLO и задав ей координаты х–позиции, у-позиции, ширину и высоту.

  10. Изображение с названием 46622 10

    10

    Вот и все! Мы закончили с нашим скриптом ресурса. Только еще одно: мы должны присвоить значения всем величинам, которых мы определили в нашем скрипте ресурсов (например, IDR_THEMENU, и т.д.). Сохраните файл ресурса как SimpleProg.rc

  11. Изображение с названием 46622 11

    11

    Выберите 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
    
  12. Изображение с названием 46622 12

    12

    Сохранить этот файл как resource.h . Помните, как мы писали «#include «resource.h»»? Ну, вот почему мы это сделали. Нам нужно было присвоить значения.

  13. Изображение с названием 46622 13

    13

    Вернитесь к ресурсу, нашему SimpleProg.c или тому, как его вы назвали. Введите:

    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){return DialogBox(hInstance, MAKEINTRESOURCE(IDD_SIMPLECONTROL), NULL, SimpleProc);}
    
  14. Изображение с названием 46622 14

    14

    Не беспокойтесь слишком о всех технических нюансах здесь. Просто знайте, что это части возвращают диалоговое окно к нашей процедуре обработки сообщений, называемой SimpleProc.

  15. Изображение с названием 46622 15

    15

    Введите: 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;}

  16. Изображение с названием 46622 16

    16

    Эта часть обрабатывает диалоговые сообщения. Например, в случае ID_HELLO (наша кнопка), мы создаем окно сообщения с содержанием «Hello!». Кроме того, в случае, когда переходим в File и Exit, мы закрываем окно в случае ID_FILE_EXIT.

  17. Изображение с названием 46622 17

    17

    Убедитесь, что ваш SimpleProc предшествует части int WINAPI WINMAIN ! Это важно, если вы хотите, чтобы ваша программа работала.

  18. Изображение с названием 46622 18

    18

    Нажмите F9, чтобы скомпилировать и запустить программу!

    Реклама

Советы

  • Если вы расстроены (на любом этапе работы) — отдохните и вернитесь обратно.
  • Это учебник для начинающих, так много частей не объясняются. Даже если это учебник для начинающих, рекомендуется, чтобы у вас был некоторый опыт в области программирования (например, знание switch statments, if-else, и т.д.)
  • Если вы запутались, есть много учебников, доступных в Интернете.

Реклама

Предупреждения

  • Изучение Win32 не является легкой задачей. Вам нужно обратить внимание на это. Это, безусловно, не для слабонервных.
  • Нумерация строк в этом учебнике несколько искажает исходный код.

Реклама

Об этой статье

Эту страницу просматривали 19 526 раз.

Была ли эта статья полезной?

Создаем оконное приложение для Windows с C#

До сих пор мы создавали только консольные приложения.
Но программисты на C# широко используют формы для создания пользовательских интерфейсов.
И в сегодняшней статье мы создадим простое оконное приложение.

В примерах используем русскую версию программы Visual Studio 2012.
Первый шаг — начать новый проект и создать форму. Для чего откройте Visual Studio и выберите Файл-> Создать -> Проект, а в диалоговом окне нового проекта выберите Visual C#- Windows и выберите Приложение Windows Forms. Введите имя проекта в нижней части диалогового окна и нажмите кнопку ОК. На следующем рисунке показано, как создать новую форму в Visual Studio.

Изображение

В диалоговом окне Новый проект выберите Приложение Windows Forms».

Изображение

После выбора приложения Windows Forms вы можете увидеть форму по умолчанию (Form1) в своем новом проекте C#. Форма Windows Form, которую вы видите в представлении «Конструктор», представляет собой визуальное представление окна, которое открывается при открытии вашего приложения.

Изображение

Каждый раз, когда вы создаете приложение Windows, Visual Studio будет отображать пустую форму по умолчанию, на которую вы можете перетащить элементы управления на основную форму приложения и настроить их размер и положение.

Если вы хотите установить какие-либо свойства формы, вы можете использовать окно свойств Visual Studio, чтобы изменить их. Есливы не видите окно Свойств, в меню ВИД щелкните Окно свойств. В этом окне перечислены свойства выбранной в данный момент формы Windows или элемента управления, и здесь вы можете изменить существующие значения.

Далее на вкладке ВИД открываем панель элементов. Находим там виджет Button и перетаскиваем его на форму. Дважды щелкаем по новому элементу и открываем окно с кодом кнопки.

  private void button1_Click(object sender, EventArgs e)
  {
   // вводим следующий код
     MessageBox.Show("Привет Мир");

  }

Запускаем приложение.

Изображение

При нажатии на кнопку на экране должно появиться приветствие.
Результат:

Изображение

Таким образом мы наглядно увидели возвожности создания оконных приложений с C# и Visual Studio, а также привязали к форме кнопку реагирующей на нажатие.

  • Создано 12.10.2021 11:38:18


  • Михаил Русаков

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Actual Window Manager — набор дополнительных функций для окон в Windows. Данный менеджер позволяет организовать пространство рабочего стола и настроить окна, а именно: зафиксировать их размер, задать прозрачность, свернуть при запуске, закрепить над всеми окнами и многое другое.

Программа ведёт настройку выбранных приложений, то есть можно легко настроить размер окна браузера, офисного приложения или архиватора. Для удобного управления прозрачностью, приоритетом и другими настройками активного окна, предусмотрены дополнительные кнопки, которые появятся радом с классическими иконками «Закрыть» и «Свернуть».

Раздел настроек позволяет задать конкретный размер окон из готового списка или задать его вручную. При этом, настройки будут сохранены даже после перезагрузки компьютера или перезапуска приложения.

Возможности и преимущества:

  • Дополнительные кнопки в заголовке окна для управления основным функционалом программы;
  • Настройка исключений или выбранных приложений;
  • Фиксация размеров выбранных окон или приложений;
  • Установка прозрачности для любых окон;
  • Установка расположения окна: позади всех, поверх всех, свернуть;
  • Поддержка создания виртуальных рабочих столов;
  • Дополнительный функционал для работы с несколькими мониторами;
  • Переключение между профилями;
  • Ключ Actual Window Manager можно получить при помощи приложенного кейгена.

Скачать Actual Window Manager предложено по прямой загрузочной ссылке в секции скачивания программы под описанием. Программа будет полезна при частой работе с разными каталогами, файлами и приложениями, и наведёт порядок на вашем рабочем столе.

Обладателям нескольких мониторов также рекомендуем опробовать Actual Multiple Monitors для индивидуальной настройки рабочего стола, окон и панели задач на разных мониторах.

Actual Window Manager 8.15

О программе

КатегорияСистема

РазработчикActual Tools

Добавлено04-07-2023

Версия8.15

ПоддержкаWindows XP, 7, 8, 8.1, 10

ЯзыкMulti / Русский

АктивацияПриложено в архиве

Не ленись, оцени материал!

3 голосов

Скачать Actual Window Manager 8.15

Пароль от архивов: pcprogsnet

Actual Window Manager 8.15

Скачать

Actual Window Manager 8.15

Уважаемые гости и те, у кого не работает облако MAIL и скачивание файлов! Прямые ссылки на ПО по прежнему доступны, но только для ЗАРЕГИСТРИРОВАННЫХ пользователей. Если хотите качать напрямую с сервера, огромная просьба, зарегистрироваться. При возникновении каких-либо трудностей, обращайтесь в наш чат TELEGRAM.

Подписывайся и следи за новостями

Introduction

Windows Programming is the C programming language in which the Microsoft Windows Operating System is written. In the world, most of the developers use C windows programming to develop software than Object-Oriented languages. To learn this language,you must have complete knowledge about basics of C/C++ programming language. Even the CLR of .NET framework is written in windows programming.

Procedure

Step 1. Start Visual Studio & Go to File, New, then Project,

Step 2. Drop Visual C++ list and Select Win32 Project.,

Step 3. Enter project name & click ok.

Step 4. Win32 Application Wizard dialog box appeared then click finish.

Once your project is created then you can see already added code to editor in Visual Studio. Remember your file is saved as .cpp extension so you must include «stdafx.h» header file. Now, remove all the contents from the editor of Visual Studio of your created project. All right,Let’s start. Here’s the windows program that display message box. Copy & Paste following program into your project & Debug it. 

#include"stdafx.h"  
#include<Windows.h>  
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)  
{  
    MessageBox(NULL, TEXT("Hello World\nThis is Windows Programming"), TEXT("Hello"), MB_OK);  
  
    return 0;  
}

Description:

  • Windows.h: This is the header file for windows program.
  • WINAPI: This is Windows Application Programming Interface(WINAPI) to tell the compiler that this program contain graphical components than console components.
  • WinMain: This is the main function of all windows programs.This function takes four parameters.It is same as main() function in simple C/C++ programs.
  • HINSTANCE: This is Handle to Instance.As you know what is the meaning of instance in Object-Oriented programming. It is the number used as object.In this program the object of program is handled by itself.There may be many instances of one program.This handles only new comer instance. Next parameter hPrevInstance handles previous instance.
  • PSTR: This is Pointer to String parameter.It is same as char* but meaning is different.This parameter is same as command line argument(args) in Object-Oriented programming language.
  • MessageBox: This method display a message box.
  • TEXT: This function is same as char* in C/C++ but in windows it is PCWSTR(Pointer to Character Wide String).
  • MB_OK: This is #define function for adding only OK button to messagebox. 

Now let’s create a window.

Here’s the program to create window in C++.

Copy & Paste following program into your project & Debug it. 

#include"stdafx.h"  
#include<Windows.h>  
  
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lparam);  
  
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)  
{  
    TCHAR appname[] = TEXT("Windows Programming");  
    WNDCLASS wndclass;  
    MSG msg;  
    HWND hwnd;  
  
    wndclass.cbClsExtra = 0;  
    wndclass.cbWndExtra = 0;  
    wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);  
    wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);  
    wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);  
    wndclass.hInstance = hInstance;  
    wndclass.lpfnWndProc = WndProc;  
    wndclass.lpszClassName = appname;  
    wndclass.lpszMenuName = NULL;  
    wndclass.style = CS_HREDRAW | CS_VREDRAW;  
  
    // check this window class is registered or not  
    if (!RegisterClass(&wndclass))  
    {  
        MessageBox(NULL, TEXT("Window class is not registered"), TEXT("Error...."), MB_ICONERROR);  
        return 0;  
    }  
  
    hwnd = CreateWindow(appname,  //window name  
                            appname,   // window text  
                            WS_OVERLAPPEDWINDOW, // window style  
                            CW_USEDEFAULT,   //default window position x  
                            CW_USEDEFAULT,   //default window position y  
                            600,   //width  
                            500,    // height  
                            NULL,  
                            NULL,  
                            hInstance,  
                            NULL  
                       );  
  
    // show & update created window  
    ShowWindow(hwnd, iCmdShow);  
    UpdateWindow(hwnd);  
  
    // get message from queue  
    while (GetMessage(&msg, NULL, 0, 0))  
    {  
        TranslateMessage(&msg);  
        DispatchMessage(&msg);  
    }  
  
    return msg.wParam;  
}  
  
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)  
{  
    HDC hdc;  
    PAINTSTRUCT ps;  
  
    switch (message)  
    {  
    case WM_CREATE :  
        MessageBox(NULL, TEXT("Window is started !"), TEXT("Welcome"), MB_ICONINFORMATION);  
        return 0;  
        break;  
  
    case WM_PAINT :  
        hdc = BeginPaint(hwnd, &ps);  
  
        SetTextColor(hdc, RGB(0, 0, 240));  
        RECT rect;   
        GetClientRect(hwnd, &rect);  
  
        DrawText(hdc, TEXT("This is Windows Programming"), -1, &rect, DT_VCENTER | DT_CENTER | DT_SINGLELINE);  
  
        EndPaint(hwnd, &ps);  
        break;  
  
    case WM_DESTROY :  
        PostQuitMessage(EXIT_SUCCESS);  
        return 0;  
    }  
  
    return DefWindowProc(hwnd, message, wParam, lParam);  
}

Description

  • WNDCLASS : Structure to create window class.
  • MSG : Message structure
  • HWND : Handle to Window.This structure handles the created window.
  • HBRUSH : Handle to Brush.
  • LoadCursor : This function load cursor for created window.IDC stands for ID number for Cursor.
  • LoadIcon : This function load icon for created window.IDI stands for ID number for Icon.
  • GetStockObject : Obtains a graphic object, in this case a brush used for painting the window’s background.
  • RegisterClass : This function takes one parameter of WNDCLASS structure variable.
  • CreateWindow : This function create the window.
  • Parameters : CreateWindow(window_name, window_text, window_style, x, y, width, height, parent, menu, hInstance, lparam);
  • ShowWindow : This function shows the created window.
  • UpdateWindow: This function update the created window. Everything in windows programs are handled using messages.Messages are the numbers stored in a queue. Each number define the specific task which will be performed by program.
  • GetMessage : This function get the message from the queue.
  • LRESULT : It means the generated result is Long type.
  • CALLBACK : Defining this keyword,it specify the function to call it back.
  • WPARAM : PARAM means parameter & W stands for WORD which is 16 bit unsigned short integer.
  • LPARAM : L stands for Long.
  • HDC : Stands for Handle to Device Context.It is a structure that handles to a devices such as graphics.
  • PAINTSTRUCT : It is a structure for paint components.
  • WM_CREATE : This function is same as Form_Load() function in C#.It means that window is created.
  • WM_PAINT : This function paints the created window.In C# it is same as OnPaint() method.
  • WM_DESTROY : This is same as window closing event. 

DefWindowProc

This function returns the generated result message to the WinMain function. WNDCLASS structure indexes In above program you can see the structure components with prefixes like cbClsExtra,hbrBackground,lpfnWndProc etc.

So what are they?

  • cb : counts of bytes
  • hbr : handle to brush
  • h : handle
  • lpfn : long pointer to function
  • lpsz : long pointer to string terminated with zero.

Other important prefixes

  • CS : Class Style
  • CW : Create Window
  • DT : Draw Text
  • IDI : ID number for Icon
  • IDC : ID number for Cursor
  • MB : Message Box
  • SND : Sound
  • WM : Window Message
  • WS : Window Style

Above program starts its execution from WinMain function.

That takes the hwnd created window & message,show & update the window.

But what should the created window do?

This is provided by WndProc function.

WndProc is assign to the function of structure variable wndclass — lpfnWndProc.

Here’s the output of above program.

output

Read more articles on C++:

  • Getting Started With OpenGL In Visual C++
  • C++ Refresher — Part Four

  • Программа для торрента скачать бесплатно на русском windows 10
  • Программа для создания образа жесткого диска для windows 10
  • Программа для создания резервной копии системы windows
  • Программа для смены пароля windows 10
  • Программа для считывания ключа windows