Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 13.12.2012, 10:01   #61
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,247
По умолчанию

Продолжение main.c

Код:
    case WM_COMMAND:
        {
            BOOL checked1 = IsDlgButtonChecked(hWnd, ID_CHECKBOX1);
            BOOL checked2 = IsDlgButtonChecked(hWnd, ID_CHECKBOX2);
            if (LOWORD(wParam) == ID_CHECKBOX1) {
                if (checked1) {
                    CheckDlgButton(hWnd, ID_CHECKBOX1, BST_UNCHECKED);
                }
                else {
                    CheckDlgButton(hWnd, ID_CHECKBOX1, BST_CHECKED);
                }
            }
            else if (LOWORD(wParam) == ID_CHECKBOX2) {
                if (checked2) {
                    CheckDlgButton(hWnd, ID_CHECKBOX2, BST_UNCHECKED);
                }
                else {
                    CheckDlgButton(hWnd, ID_CHECKBOX2, BST_CHECKED);
                }
            }
            else if (LOWORD(wParam) == ID_BUTTON) {
                if (checked1 && checked2) {
                    MessageBox(hWnd,
                        _T("CHECKBOX1 and CHECKBOX2 is checked!"),
                        _T("Message"),
                        NULL);
                }
                else if (checked1) {
                    MessageBox(hWnd,
                        _T("CHECKBOX1 and checked!"),
                        _T("Message"),
                        NULL);
                }
                else if (checked2) {
                    MessageBox(hWnd,
                        _T("CHECKBOX2 is checked!"),
                        _T("Message"),
                        NULL);
                }
                else {
                    MessageBox(hWnd,
                        _T("Nothing is checked!"),
                        _T("Message"),
                        NULL);
                }
            }
            break;
        }

    case WM_DESTROY:
        {
            PostQuitMessage(0);
            break;
        }

    default:
        {
            return DefWindowProc(hWnd, message, wParam, lParam);
            break;
        }
    }

    return 0;
}
- откомпилировать и запустить проект Visual 2008
- по желанию: создать релизный exe-файл, который будет запускаться на других машинах, где нет требуемых библиотек

Последний раз редактировалось 8Observer8; 13.12.2012 в 10:10.
8Observer8 вне форума Ответить с цитированием
Старый 13.12.2012, 10:43   #62
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,247
По умолчанию

Radio Button (без ресурсов)



Инструкция:
- скачать и установить инструментарий
- создать проект Visual 2008
- скопировать следующий код в main.c
Код:
#include <windows.h>
#include <tchar.h>

static TCHAR ClassName[] = _T("SimpleWinClass");
static TCHAR AppName[] = _T("RadioButton");

HINSTANCE hInst;

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

int WINAPI WinMain( HINSTANCE hInstance,
    HINSTANCE hPrevInstance,
    LPSTR lpCmdLine,
    int nCmdShow)
{
    WNDCLASSEX wcex;
    MSG msg;
    HWND hWnd;

    wcex.cbSize = sizeof(WNDCLASSEX);
    wcex.style          = CS_HREDRAW | CS_VREDRAW;
    wcex.lpfnWndProc    = WndProc;
    wcex.cbClsExtra     = 0;
    wcex.cbWndExtra     = 0;
    wcex.hInstance      = hInstance;
    wcex.hIcon          = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_APPLICATION));
    wcex.hCursor        = LoadCursor(NULL, IDC_ARROW);
    wcex.hbrBackground  = (HBRUSH)(COLOR_BTNFACE + 1);
    wcex.lpszMenuName   = NULL;
    wcex.lpszClassName  = ClassName;
    wcex.hIconSm        = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_APPLICATION));

    if (!RegisterClassEx(&wcex))
    {
        MessageBox(NULL,
            _T("Call to RegisterClassEx failed!"),
            _T("Win32 Guided Tour"),
            NULL);

        return 1;
    }

    hInst = hInstance;

    hWnd = CreateWindow( ClassName,
        AppName,
        WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_MINIMIZEBOX,
        CW_USEDEFAULT, CW_USEDEFAULT,
        250, 200,
        NULL,
        NULL,
        hInstance,
        NULL
        );

    if (!hWnd)
    {
        MessageBox(NULL,
            _T("Call to CreateWindow failed!"),
            _T("Win32 Guided Tour"),
            NULL);

        return 1;
    }

    ShowWindow(hWnd, nCmdShow);
    UpdateWindow(hWnd);

    while (GetMessage(&msg, NULL, 0, 0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }

    return (int) msg.wParam;
}

#define ID_RADIOBUTON1 1
#define ID_RADIOBUTON2 2
#define ID_BUTTON 3

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    PAINTSTRUCT ps;
    HDC hdc;

    switch (message)
    {
    case WM_CREATE:
        {
            CreateWindow(TEXT("button"), TEXT("First"),
                WS_VISIBLE | WS_CHILD |  BS_RADIOBUTTON,
                20, 20, 185, 35,        
                hWnd, (HMENU) ID_RADIOBUTON1, ((LPCREATESTRUCT)lParam)->hInstance, NULL);
            CreateWindow(TEXT("button"), TEXT("Second"),
                WS_VISIBLE | WS_CHILD |  BS_RADIOBUTTON,
                20, 50, 185, 35,        
                hWnd, (HMENU) ID_RADIOBUTON2, ((LPCREATESTRUCT)lParam)->hInstance, NULL);
            CreateWindow(TEXT("button"), TEXT("What?"),
                WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON,
                20, 100, 185, 35,        
                hWnd, (HMENU) ID_BUTTON, ((LPCREATESTRUCT)lParam)->hInstance, NULL);
            CheckDlgButton(hWnd, ID_RADIOBUTON1, BST_CHECKED);
            break;
        }
Продолжение main.c в следующем сообщении

Последний раз редактировалось 8Observer8; 13.12.2012 в 10:46.
8Observer8 вне форума Ответить с цитированием
Старый 13.12.2012, 10:47   #63
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,247
По умолчанию

Продолжение main.c

Код:
    case WM_COMMAND:
        {
            BOOL checked1 = IsDlgButtonChecked(hWnd, ID_RADIOBUTON1);
            BOOL checked2 = IsDlgButtonChecked(hWnd, ID_RADIOBUTON2);
            if (LOWORD(wParam) == ID_RADIOBUTON1) {
                if (checked1) {
                    CheckDlgButton(hWnd, ID_RADIOBUTON1, BST_UNCHECKED);
                    CheckDlgButton(hWnd, ID_RADIOBUTON2, BST_CHECKED);
                }
                else {
                    CheckDlgButton(hWnd, ID_RADIOBUTON1, BST_CHECKED);
                    CheckDlgButton(hWnd, ID_RADIOBUTON2, BST_UNCHECKED);
                }
            }
            else if (LOWORD(wParam) == ID_RADIOBUTON2) {
                if (checked2) {
                    CheckDlgButton(hWnd, ID_RADIOBUTON2, BST_UNCHECKED);
                    CheckDlgButton(hWnd, ID_RADIOBUTON1, BST_CHECKED);
                }
                else {
                    CheckDlgButton(hWnd, ID_RADIOBUTON2, BST_CHECKED);
                    CheckDlgButton(hWnd, ID_RADIOBUTON1, BST_UNCHECKED);
                }
            }
            else if (LOWORD(wParam) == ID_BUTTON) {
                if (checked1) {
                    MessageBox(hWnd,
                        _T("RADIOBUTON1 is checked!"),
                        _T("Message"),
                        NULL);
                }
                else {
                    MessageBox(hWnd,
                        _T("RADIOBUTON2 is checked!"),
                        _T("Message"),
                        NULL);
                }
            }
            break;
        }

    case WM_DESTROY:
        {
            PostQuitMessage(0);
            break;
        }

    default:
        {
            return DefWindowProc(hWnd, message, wParam, lParam);
            break;
        }
    }

    return 0;
}
- откомпилировать и запустить проект Visual 2008
- по желанию: создать релизный exe-файл, который будет запускаться на других машинах, где нет требуемых библиотек
8Observer8 вне форума Ответить с цитированием
Старый 14.12.2012, 12:02   #64
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,247
По умолчанию

Button (без ресурсов)



Инструкция:
- скачать и установить инструментарий
- создать проект Visual 2008
- скопировать следующий код в main.c
Код:
#include <windows.h>
#include <tchar.h>

static TCHAR ClassName[] = _T("SimpleWinClass");
static TCHAR AppName[] = _T("Button");

HINSTANCE hInst;

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

int WINAPI WinMain( HINSTANCE hInstance,
    HINSTANCE hPrevInstance,
    LPSTR lpCmdLine,
    int nCmdShow)
{
    WNDCLASSEX wcex;
    MSG msg;
    HWND hWnd;

    wcex.cbSize = sizeof(WNDCLASSEX);
    wcex.style          = CS_HREDRAW | CS_VREDRAW;
    wcex.lpfnWndProc    = WndProc;
    wcex.cbClsExtra     = 0;
    wcex.cbWndExtra     = 0;
    wcex.hInstance      = hInstance;
    wcex.hIcon          = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_APPLICATION));
    wcex.hCursor        = LoadCursor(NULL, IDC_ARROW);
    wcex.hbrBackground  = (HBRUSH)(COLOR_BTNFACE + 1);
    wcex.lpszMenuName   = NULL;
    wcex.lpszClassName  = ClassName;
    wcex.hIconSm        = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_APPLICATION));

    if (!RegisterClassEx(&wcex))
    {
        MessageBox(NULL,
            _T("Call to RegisterClassEx failed!"),
            _T("Win32 Guided Tour"),
            NULL);

        return 1;
    }

    hInst = hInstance;

    hWnd = CreateWindow( ClassName,
        AppName,
        WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_MINIMIZEBOX,
        CW_USEDEFAULT, CW_USEDEFAULT,
        250, 130,
        NULL,
        NULL,
        hInstance,
        NULL
        );

    if (!hWnd)
    {
        MessageBox(NULL,
            _T("Call to CreateWindow failed!"),
            _T("Win32 Guided Tour"),
            NULL);

        return 1;
    }

    ShowWindow(hWnd, nCmdShow);
    UpdateWindow(hWnd);

    while (GetMessage(&msg, NULL, 0, 0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }

    return (int) msg.wParam;
}

#define ID_BUTTON 1

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    PAINTSTRUCT ps;
    HDC hdc;

    switch (message)
    {
    case WM_CREATE:
        {
            CreateWindow(TEXT("button"), TEXT("Press"),
                WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON,
                20, 30, 185, 35,        
                hWnd, (HMENU) ID_BUTTON, ((LPCREATESTRUCT)lParam)->hInstance, NULL);
            break;
        }

    case WM_COMMAND:
        {
            if (LOWORD(wParam) == ID_BUTTON) {
                    MessageBox(hWnd,
                        _T("Button was pressed!"),
                        _T("Message"),
                        NULL);
            }
            break;
        }

    case WM_DESTROY:
        {
            PostQuitMessage(0);
            break;
        }

    default:
        {
            return DefWindowProc(hWnd, message, wParam, lParam);
            break;
        }
    }

    return 0;
}
- откомпилировать и запустить проект Visual 2008
- по желанию: создать релизный exe-файл, который будет запускаться на других машинах, где нет требуемых библиотек
8Observer8 вне форума Ответить с цитированием
Старый 14.12.2012, 13:24   #65
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,247
По умолчанию

Edit Control (чтение)



Инструкция:
- скачать и установить инструментарий
- создать проект Visual 2008
- скопировать следующий код в main.c
Код:
#include <windows.h>
#include <tchar.h>

static TCHAR ClassName[] = TEXT("SimpleWinClass");
static TCHAR AppName[] = TEXT("Reading from Edit Control");

HINSTANCE hInst;

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

int WINAPI WinMain( HINSTANCE hInstance,
    HINSTANCE hPrevInstance,
    LPSTR lpCmdLine,
    int nCmdShow)
{
    WNDCLASSEX wcex;
    MSG msg;
    HWND hWnd;

    wcex.cbSize = sizeof(WNDCLASSEX);
    wcex.style          = CS_HREDRAW | CS_VREDRAW;
    wcex.lpfnWndProc    = WndProc;
    wcex.cbClsExtra     = 0;
    wcex.cbWndExtra     = 0;
    wcex.hInstance      = hInstance;
    wcex.hIcon          = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_APPLICATION));
    wcex.hCursor        = LoadCursor(NULL, IDC_ARROW);
    wcex.hbrBackground  = (HBRUSH)(COLOR_BTNFACE + 1);
    wcex.lpszMenuName   = NULL;
    wcex.lpszClassName  = ClassName;
    wcex.hIconSm        = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_APPLICATION));

    if (!RegisterClassEx(&wcex))
    {
        MessageBox(NULL,
            TEXT("Call to RegisterClassEx failed!"),
            TEXT("Win32 Guided Tour"),
            NULL);

        return 1;
    }

    hInst = hInstance;

    hWnd = CreateWindow( ClassName,
        AppName,
        WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX,
        CW_USEDEFAULT, CW_USEDEFAULT,
        280, 160,
        NULL,
        NULL,
        hInstance,
        NULL
        );

    if (!hWnd)
    {
        MessageBox(NULL,
            TEXT("Call to CreateWindow failed!"),
            TEXT("Win32 Guided Tour"),
            NULL);

        return 1;
    }

    ShowWindow(hWnd, nCmdShow);
    UpdateWindow(hWnd);

    while (GetMessage(&msg, NULL, 0, 0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }

    return (int) msg.wParam;
}

#define ID_EDIT 1
#define ID_BUTTON 2
#define BSIZE 256
HWND hEdit;

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    PAINTSTRUCT ps;
    HDC hdc;
    HGDIOBJ hfDefault;
    HWND hWndButton;
    TCHAR buffer[256];

    switch (message)
    {
    case WM_CREATE:
        {
            hEdit = CreateWindowEx(WS_EX_CLIENTEDGE, TEXT("EDIT"), NULL,
                WS_CHILD | WS_VISIBLE | ES_AUTOVSCROLL |
                ES_AUTOHSCROLL | ES_CENTER,
                40, 20, 200, 25,
                hWnd, (HMENU) ID_EDIT, ((LPCREATESTRUCT)lParam)->hInstance, NULL);
            hfDefault=GetStockObject(DEFAULT_GUI_FONT);
            SendMessage(hEdit,
                WM_SETFONT,
                (WPARAM)hfDefault,
                MAKELPARAM(FALSE,0));
            hWndButton = CreateWindow(TEXT("button"), TEXT("Read"),
                WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON,
                40, 70, 200, 35,        
                hWnd, (HMENU) ID_BUTTON, ((LPCREATESTRUCT)lParam)->hInstance, NULL);
            SendMessage(hWndButton,
                WM_SETFONT,
                (WPARAM)hfDefault,
                MAKELPARAM(FALSE,0));
            break;
        }

    case WM_COMMAND:
        {
            switch(LOWORD(wParam))
            {
            case ID_BUTTON:
                {
                    SendMessage(hEdit,
                        WM_GETTEXT,
                        sizeof(buffer)/sizeof(buffer[0]),
                        (LPARAM)buffer);
                    MessageBox(hWnd,
                        buffer,
                        TEXT("Information"),
                        MB_ICONINFORMATION);
                }
                break;
            }
            break;
        }

    case WM_DESTROY:
        {
            PostQuitMessage(0);
            break;
        }

    default:
        {
            return DefWindowProc(hWnd, message, wParam, lParam);
            break;
        }
    }

    return 0;
}
- откомпилировать и запустить проект Visual 2008
- по желанию: создать релизный exe-файл, который будет запускаться на других машинах, где нет требуемых библиотек

Полезные ссылки:

- Microsoft (MSDN) - Full list of common controls
- Microsoft (MSDN) - Additional information about buttons
- Microsoft (MSDN) - More information about using edit controls

Последний раз редактировалось 8Observer8; 14.12.2012 в 16:56.
8Observer8 вне форума Ответить с цитированием
Старый 14.12.2012, 13:26   #66
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,247
По умолчанию

Edit Control (запись)



Инструкция:
- скачать и установить инструментарий
- создать проект Visual 2008
- скопировать следующий код в main.c
Код:
#include <windows.h>
#include <tchar.h>

static TCHAR ClassName[] = TEXT("SimpleWinClass");
static TCHAR AppName[] = TEXT("Writing in Edit Control");

HINSTANCE hInst;

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

int WINAPI WinMain(HINSTANCE hInstance,
    HINSTANCE hPrevInstance,
    LPSTR lpCmdLine,
    int nCmdShow)
{
    WNDCLASSEX wcex;
    MSG msg;
    HWND hWnd;

    wcex.cbSize = sizeof(WNDCLASSEX);
    wcex.style          = CS_HREDRAW | CS_VREDRAW;
    wcex.lpfnWndProc    = WndProc;
    wcex.cbClsExtra     = 0;
    wcex.cbWndExtra     = 0;
    wcex.hInstance      = hInstance;
    wcex.hIcon          = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_APPLICATION));
    wcex.hCursor        = LoadCursor(NULL, IDC_ARROW);
    wcex.hbrBackground  = (HBRUSH)(COLOR_BTNFACE + 1);
    wcex.lpszMenuName   = NULL;
    wcex.lpszClassName  = ClassName;
    wcex.hIconSm        = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_APPLICATION));

    if (!RegisterClassEx(&wcex))
    {
        MessageBox(NULL,
            TEXT("Call to RegisterClassEx failed!"),
            TEXT("Win32 Guided Tour"),
            NULL);

        return 1;
    }

    hInst = hInstance;

    hWnd = CreateWindow(ClassName,
        AppName,
        WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX,
        CW_USEDEFAULT, CW_USEDEFAULT,
        280, 160,
        NULL,
        NULL,
        hInstance,
        NULL);

    if (!hWnd)
    {
        MessageBox(NULL,
            TEXT("Call to CreateWindow failed!"),
            TEXT("Win32 Guided Tour"),
            NULL);

        return 1;
    }

    ShowWindow(hWnd, nCmdShow);
    UpdateWindow(hWnd);

    while (GetMessage(&msg, NULL, 0, 0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }

    return (int) msg.wParam;
}

#define ID_EDIT 1
#define ID_BUTTON 2
HWND hEdit;

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    PAINTSTRUCT ps;
    HDC hdc;
    HGDIOBJ hfDefault;
    HWND hWndButton;
    TCHAR buffer[] = TEXT("Hello!");

    switch (message)
    {
    case WM_CREATE:
        {
            hEdit = CreateWindowEx(WS_EX_CLIENTEDGE, TEXT("EDIT"), NULL,
                WS_CHILD | WS_VISIBLE | ES_AUTOVSCROLL |
                ES_AUTOHSCROLL | ES_CENTER,
                40, 20, 200, 25,
                hWnd, (HMENU) ID_EDIT,
                ((LPCREATESTRUCT)lParam)->hInstance, NULL);
            hfDefault = GetStockObject(DEFAULT_GUI_FONT);
            SendMessage(hEdit,
                WM_SETFONT,
                (WPARAM) hfDefault,
                MAKELPARAM(FALSE, 0));
            hWndButton = CreateWindow(TEXT("button"), TEXT("Write"),
                WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON,
                40, 70, 200, 35,        
                hWnd, (HMENU) ID_BUTTON,
                ((LPCREATESTRUCT)lParam)->hInstance, NULL);
            SendMessage(hWndButton,
                WM_SETFONT,
                (WPARAM)hfDefault,
                MAKELPARAM(FALSE, 0));
            break;
        }

    case WM_COMMAND:
        {
            switch(LOWORD(wParam))
            {
            case ID_BUTTON:
                {
                    SendMessage(hEdit,
                        WM_SETTEXT,
                        0,
                        (LPARAM)buffer);
                }
                break;
            }
            break;
        }

    case WM_DESTROY:
        {
            PostQuitMessage(0);
            break;
        }

    default:
        {
            return DefWindowProc(hWnd, message, wParam, lParam);
            break;
        }
    }

    return 0;
}
- откомпилировать и запустить проект Visual 2008
- по желанию: создать релизный exe-файл, который будет запускаться на других машинах, где нет требуемых библиотек

Полезные ссылки:

- Win32 Developer
- Microsoft (MSDN) - Full list of common controls
- Microsoft (MSDN) - Additional information about buttons
- Microsoft (MSDN) - More information about using edit controls

Последний раз редактировалось 8Observer8; 14.12.2012 в 16:54.
8Observer8 вне форума Ответить с цитированием
Старый 14.12.2012, 17:32   #67
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,247
По умолчанию

Предварительное содержание

С ресурсами:
CheckBox
Radio Button
ComboBox
Menu
Button
Edit Control (чтение)
Edit Control (запись)
Сложение двух положительных целых чисел
Обмен данными между Edit'ами
Примеры программ на WinAPI

Без ресурсов:
Button
Radio Button: часть 1, часть 2
CheckBox: часть 1, часть 2
Edit Control (чтение)
Edit Control (запись)

Последний раз редактировалось 8Observer8; 14.12.2012 в 17:34.
8Observer8 вне форума Ответить с цитированием
Ответ
Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Различия WinAPI и создание оконных приложений VS Studio Sauber Общие вопросы C/C++ 13 03.07.2012 19:21
Создание окна(asm) с использованием WinApi Alex1991 Assembler - Ассемблер 5 04.04.2011 13:20
Создание GUI в DirectX Selestis Gamedev - cоздание игр: Unity, OpenGL, DirectX 11 02.08.2010 15:15
Создание сложных объектов в gui cherw9!40k Общие вопросы по Java, Java SE, Kotlin 0 22.03.2010 23:02
Создание GUI для WINDOWS inzener-tolik Помощь студентам 8 13.03.2010 12:39