Другие языки программирования и технологии

как создать простое пустое окно в с++?

раскопал кучу сайтов, ни с одного не работает)) работаю в Microsoft Visual C++ 2010.
через WinAPI, кури в сторону CreateWindow, CreateWindowEx ЕМНИП

UPD:

See Also

Reference
CLIENTCREATESTRUCT
CREATESTRUCT
CreateWindow
DestroyWindow
EnableWindow
RegisterClass
RegisterClassEx
SetActiveWindow
SetForegroundWindow
SetWindowLong
SetWindowPos
ShowWindow
WM_CREATE
WM_NCCALCSIZE
WM_NCCREATE
WM_PARENTNOTIFY
Леонид Чигринов
Леонид Чигринов
17 142
Лучший ответ
Игорь Перепечко а можно код, если не сложно?) я тож с winApi пробовал, не получается, а нормального ресурса для изучения не нахожу, поэтому большинство операторов не понятно(
Возьми Qt и будет тебе счастие:

#include <QtGui/QApplication>
#include <QtGui/QLabel>

int main(int ac, char** av)
{
QApplication a(ac,av);
QLabel l("Hello World!");
l.show();
return a.exec();
}
Если использовать только WinAPI, то:

#include <windows.h>

const char WindowClass[] = "TestWindow";

LRESULT CALLBACK WindowProc(HWND wnd, UINT msg, WPARAM wparam, LPARAM lparam)
{
    LRESULT result;

    switch (msg) {

        case WM_CREATE:

            result = 0;
            break;

        case WM_DESTROY:

            PostQuitMessage(0);

            result = 0;
            break;

        default:

            result = DefWindowProc(wnd, msg, wparam, lparam);
    }

    return result;
}

int main()
{
    WNDCLASSEX class;
    HINSTANCE instance;
    HWND window;
    DWORD style;
    MSG msg;

    instance = GetModuleHandle(NULL);

    //
    //  Создаем и регистрируем класс окна.
    //

    class.cbSize = sizeof(WNDCLASSEX);
    class.style = CS_HREDRAW | CS_VREDRAW;
    class.lpfnWndProc = WindowProc;
    class.cbClsExtra = 0;
    class.cbWndExtra = 0;
    class.hInstance = instance;
    class.hIcon = LoadIcon(NULL, IDI_APPLICATION);
    class.hCursor = LoadCursor(NULL, IDC_ARROW);
    class.hbrBackground = (HBRUSH) (COLOR_WINDOW + 1);
    class.lpszMenuName = NULL;
    class.lpszClassName = WindowClass;
    class.hIconSm = NULL;

    RegisterClassEx(&class);

    //
    // Создаем окно.
    //

    style = WS_OVERLAPPEDWINDOW | WS_VISIBLE;

    window = CreateWindowEx (0, WindowClass, "Hello", style, CW_USEDEFAULT, CW_USEDEFAULT,
                         800, 600, NULL, NULL, instance, NULL);

    if (window == NULL) {

        return 1;
    }

    //
    // Цикл обработки сообщений.
    //

    while (GetMessage(&msg, NULL, NULL, 0)) {

        DispatchMessage(&msg);
    }

    return msg.wParam;
}