Jump to content


Check out our Community Blogs



Recent Status Updates

View All Updates

Developed by TechBiz Xccelerator
Photo
- - - - -

Why I see windows window with console window

c++ winapi for begginers

  • Please log in to reply
No replies to this topic

#1 Ca85

Ca85

    CC Lurker

  • Just Joined
  • Pip
  • 1 posts

Posted 14 December 2016 - 12:38 PM

Hi to all humans there. Good time of day.

Me start educato WinApi.

I write code like in book:

//----------------------------------------------------------------
// Простейшее оконное приложение для Windows
//----------------------------------------------------------------

#include <windows.h>

//Ширина и высота окна
#define WINDOW_WIDTH    640
#define WINDOW_HEIGHT   480

//-----------------------------------------------------------
//  Глобальные переменные
//-----------------------------------------------------------
HWND     g_hWnd = NULL;

//-----------------------------------------------------------
//  Прототипы функций
//-----------------------------------------------------------
HRESULT          InitWindow(HINSTANCE hInstance, 
                            int nCmdShow);
LRESULT CALLBACK WndProc(HWND,
                         UINT,
                         WPARAM,
                         LPARAM);

//-----------------------------------------------------------
//  С этой функции начинается выполнение программы
//-----------------------------------------------------------
int WINAPI WinMain(HINSTANCE hInstance,
                   HINSTANCE hPrevInstance,
                   LPSTR lpCmdLine,
                   int nCmdShow)
{
    if (FAILED( InitWindow (hInstance, nCmdShow) ) )
        return 0;
        
    //Цикл обработки сообщений
    MSG msg = {0};
    while (GetMessage(&msg, NULL, 0, 0) )
    {
        TranslateMessage( &msg );
        DispatchMessage( &msg );
    }
    
    return (int) msg.wParam;
}
//-----------------------------------------------------------
//  Регистрация класса и создание окна
//-----------------------------------------------------------
HRESULT InitWindow( HINSTANCE hInstance, int nCmdShow )
{
    // Регистрируем класс окна
    WNDCLASSEX wc;
    wc.cbSize           = sizeof(WNDCLASSEX);
    wc.style            = CS_HREDRAW | CS_VREDRAW;
    wc.lpfnWndProc      = WndProc;
    wc.cbClsExtra       = 0;
    wc.cbWndExtra       = 0;
    wc.hInstance        = hInstance;
    wc.hIcon            = NULL;
    wc.hCursor          = LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground    = (HBRUSH)(COLOR_WINDOW + 1);
    wc.lpszMenuName     = NULL;
    wc.lpszClassName    = "SimpleWindowClass";
    wc.hIconSm          = LoadIcon(NULL, IDI_APPLICATION);
    if (!RegisterClassEx(&wc) )
        return E_FAIL;
        
    // Создаём окно
    g_hWnd = CreateWindow("SimpleWindowClass",
                          "Простейшее приложение для Windows",
                          WS_OVERLAPPEDWINDOW,
                          CW_USEDEFAULT,
                          CW_USEDEFAULT,
                          WINDOW_WIDTH,
                          WINDOW_HEIGHT,
                          NULL,
                          NULL,
                          hInstance,
                          NULL);
    // Если не удалось создать окно - выходим из функции
    if ( !g_hWnd )
        return E_FAIL;
    // Отображаем окно на экране
    ShowWindow (g_hWnd, nCmdShow);
    UpdateWindow(g_hWnd);
    
    return S_OK;
}

//-----------------------------------------------------------
//  Регистрация класса и создание окна
//-----------------------------------------------------------
LRESULT CALLBACK WndProc(HWND hWnd,
                         UINT message,
                         WPARAM wParam,
                         LPARAM lParam)
{
    switch (message)
    {
        case WM_DESTROY:
            PostQuitMessage(0);
            break;
        
        default:
            return DefWindowProc(hWnd, message, wParam, lParam);
    }
    return 0;
}
                         

In the Book there is only Windows window, but my program also show me console window.

Interesting, why?

 

 

Compile in Devcpp.

 


  • 0