Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.12.2012, 21:04   #51
Nusferatus
Новичок
Джуниор
 
Регистрация: 07.12.2012
Сообщений: 1
По умолчанию

Было бы крайне любопытно почитать об использовании более новых контролов, вместо описанных у Петцольда, Румянцева и т.п. стандартных классов окон, реализованных ещё в Win95)
Nusferatus вне форума Ответить с цитированием
Старый 08.12.2012, 03:51   #52
Digit@ll
Brainsbreaker
Пользователь
 
Аватар для Digit@ll
 
Регистрация: 07.02.2011
Сообщений: 26
По умолчанию

kineziz, книги по API все одинаковые, там расписывать нечего. Приучай себя к MSDN'у, поверь, уж подробней некуда.
Digit@ll вне форума Ответить с цитированием
Старый 08.12.2012, 21:02   #53
kineziz
Форумчанин
 
Регистрация: 22.12.2011
Сообщений: 378
По умолчанию

Цитата:
Сообщение от Digit@ll Посмотреть сообщение
kineziz, книги по API все одинаковые, там расписывать нечего. Приучай себя к MSDN'у, поверь, уж подробней некуда.
Ты бы лучше вместо того чтобы умничать, лучше бы написал какой нить пример использования контролов. Больше пользы будет
Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования.
kineziz вне форума Ответить с цитированием
Старый 08.12.2012, 22:33   #54
Digit@ll
Brainsbreaker
Пользователь
 
Аватар для Digit@ll
 
Регистрация: 07.02.2011
Сообщений: 26
По умолчанию

Улыбнул, для чего? Для тебя пользы от этого один хрен не будет. Она будет тогда, когда отучишь себя от копипаста.
Digit@ll вне форума Ответить с цитированием
Старый 09.12.2012, 01:56   #55
kineziz
Форумчанин
 
Регистрация: 22.12.2011
Сообщений: 378
По умолчанию

Да верно для меня не будет. И умению копи паста я себя не учил. Зачем мне это если я все это знаю. Каждый контрол и как им управлять. Давай на этом завершим бессмысленный трепет. Тема не для этого
Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования.
kineziz вне форума Ответить с цитированием
Старый 09.12.2012, 12:40   #56
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Цитата:
Сообщение от kineziz Посмотреть сообщение
, лучше бы написал какой нить пример использования контролов
Угу, желательно с использованием собственной библиотеки, чей исходник нигде не доступен. Это ну просто очень полезно всем...

Если уж нужно посмотреть наглядно как создавать и использовать *все* контролы, на предыдущей странице я давал ссылку на соотвествущую утилиту.
waleri вне форума Ответить с цитированием
Старый 09.12.2012, 21:21   #57
kineziz
Форумчанин
 
Регистрация: 22.12.2011
Сообщений: 378
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
Угу, желательно с использованием собственной библиотеки, чей исходник нигде не доступен. Это ну просто очень полезно всем...
Если ты про мой пост, то создание контрола идет без и использования сторонней библиотеки, остальное в этом коде не имеет значения, это просто сокращение реального чистого кода
Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования.
kineziz вне форума Ответить с цитированием
Старый 11.12.2012, 19:29   #58
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,322
По умолчанию

Планы

Я продолжу эту тему! Eщё далеко не все элементы GUI рассмотренны. И ещё осталось добавить обзорные примеры "без ресурсов". Но есть некоторые проблемы, о которых я расскажу ниже.

А вначале о тех темах которые я бы тоже очень хотел продолжить:

- Переписываем уроки Iczelion'а о Win32 API на C http://programmersforum.ru/showthread.php?t=202764

- Обучающий материал Рекардо Норвахи об исследовании программ http://programmersforum.ru/showthread.php?t=218166

Я сейчас усиленно изучаю Qt C++. Хочу начать тему "GUI на Qt C++" (без Qt Designer'а). Вот эти книги изучаю:

- C++ GUI Programming with Qt 4, Second Edition by Jasmin Blanchette; Mark Summerfield http://www.amazon.com/Programming-Ed...-2&keywords=qt

- Foundations of Qt Development (Expert's Voice in Open Source) by Johan Thelin http://www.amazon.com/Foundations-De...-4&keywords=qt

- The Book of Qt 4: The Art of Building Qt Applications by Daniel Molkentin http://www.amazon.com/The-Book-Qt-Bu...-8&keywords=qt

- Introduction to Design Patterns in C++ with Qt http://www.amazon.com/Introduction-P...-3&keywords=qt

В будущем хочу сделать тему "Сетевое программирование на Qt C++". Обзорно посмотрел вот эти туториалы: http://www.youtube.com/watch?v=6KtOz...8E9D63&index=1

Eщё в будущем хочу начать темы "Test-driven development" для С, С++, Java, C# (Test-driven development - разработка через тестирование)

Подробнее, делее:

Есть у меня такой пример с CuTest для С:
- http://programmersforum.ru/showpost....4&postcount=41
- http://programmersforum.ru/showpost....4&postcount=45
Но я хочу сделать подробный туториал для применения CUnit в среде NetBeans.

Далее по списку:

- CUnit в среде NetBeans, как описано здесь: http://netbeans.org/kb/docs/cnd/c-unit-test.html

- CppUnit, как здесь: http://wiki.netbeans.org/CND69UnitTests

- JUnit (для Java), как здесь: http://netbeans.org/kb/docs/java/junit-intro.html

- NUnit (для C# и Visual Basic). Затрагивал эту тему: http://programmersforum.ru/showpost....0&postcount=13

- Может ещё PHPUnit, как здесь: http://netbeans.org/kb/docs/php/phpunit.html

Есть в тех туториалах на английском ряд недостатков (не всё в них описано), которые я бы хотел учесть в своих пошаговых инструкциях

О своём сайте

Я темы буду дублировать на своем сайте: http://8observer8.somee.com/Default.aspx Я его только начал наполнять содержимым.

Проблемы

Работаю инженером-конструктором в этом КБ: www.kbep.ru. Платят очень мало (9 тыс. руб.). У нас государство забило на оборонку. Пытаюсь зарабатывать, как фрилансер на сайте: http://www.freelancer.com/ Времени вобрез. Я бы очень хотел реализавывать те, как мне кажется, преспективные темы. Но денег вообще не хватает. Если те кому интересны мои идеи, поддержат меня материально (яндекс деньги, webmoney), то я всё свободное время посвящу форуму, и буду доделывать всё, что задумал здесь. Сколько сможете! Поддержать меня можно на моём сайте http://8observer8.somee.com/Default.aspx

- Яндекс.Деньги: 410011677695050
- WebMoney: R302523642986

Надеюсь на понимание! Спасибо! С уважением Иван

Последний раз редактировалось 8Observer8; 11.12.2012 в 19:39.
8Observer8 вне форума Ответить с цитированием
Старый 11.12.2012, 22:06   #59
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Цитата:
Сообщение от kineziz Посмотреть сообщение
Если ты про мой пост, то создание контрола идет без и использования сторонней библиотеки, остальное в этом коде не имеет значения, это просто сокращение реального чистого кода
MFC и иже с ним тоже сокращение реального чистого кода. Ваш пример можно скомипилировать без библиотеки? Нет, значит к чистому API отношения не имеет.
waleri вне форума Ответить с цитированием
Старый 13.12.2012, 09:59   #60
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,322
По умолчанию

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



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

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

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_CHECKBOX1 1
#define ID_CHECKBOX2 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_CHECKBOX,
                20, 20, 185, 35,        
                hWnd, (HMENU) ID_CHECKBOX1, ((LPCREATESTRUCT)lParam)->hInstance, NULL);
            CreateWindow(TEXT("button"), TEXT("Second"),
                WS_VISIBLE | WS_CHILD | BS_CHECKBOX,
                20, 50, 185, 35,        
                hWnd, (HMENU) ID_CHECKBOX2, ((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_CHECKBOX1, BST_CHECKED);
            CheckDlgButton(hWnd, ID_CHECKBOX2, BST_CHECKED);
            break;
        }
Продолжение main.c в следующем сообщении

Последний раз редактировалось 8Observer8; 13.12.2012 в 10:12.
8Observer8 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Различия WinAPI и создание оконных приложений VS Studio Sauber Общие вопросы C/C++ 13 03.07.2012 19:21
Создание окна(asm) с использованием WinApi Alex1991 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 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 22:02
Создание GUI для WINDOWS inzener-tolik Помощь студентам 8 13.03.2010 11:39