Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Nummerok
19 / 19 / 2
Регистрация: 30.05.2014
Сообщений: 431
#1

Как через WinAPI реализовать окно? - C++

12.07.2014, 17:06. Просмотров 349. Ответов 4
Метки нет (Все метки)

У меня код, и в одной функции
C++
1
2
3
4
5
int doLauncher()
{
    // КОД ЛАУНЧЕРА
    return 0;
}
нужно сделать лаунчер.
Как через WinAPI реализовать окно? ( Про MFC даже не пишите )
Ну например окно с кнопками, где будет 3 кнопки :
button1, button2, button3
Первая кнопка возвращает 0, вторая кнопка возвращает 1, третья кнопка возвращает 2.
Помогите сделать пожалуйста :-)
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.07.2014, 17:06
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как через WinAPI реализовать окно? (C++):

Как запустить консольное приложение через CreateProcess и спрятать его окно? - C++
Т.е. как запустить досовский exe-шник через CreateProcess и чтобы его окна не было видно?

Как свой класс реализовать через формы - C++
Добрый день. Только начал изучать ГУИ на С++. Использовал вот этот гайд http://code-live.ru/post/first-windows-form/ Здесь...

Как реализовать разделение числа на цифры через цикл? - C++
Как реализовать через цикл в C разделение числа на цифры и записать их в отдельные переменные, для последующих действий с ними

Работа с файлами через WinApi - C++
Доброго времени суток. Есть программа которая которая с помощью api должна прочитать текстовый файл. Делаю с помощью ReadFile, в буфер всё...

Реализовать через тип данных структура при этом выделить память через new[] - C++
В таблице из 5 строк хранятся данные о товарах: наименование, цена, количество. Определить и вывести наименование товара, цена которого...

Как сделать окно (окно домика) в пространстве, как на изображении? - C++
Здравствуйте, как сделать окно в пространстве, как на изображении? сделал крышу и "фундамент": for (int i = 0, x = 9; i < 21;...

4
deniska91
54 / 3 / 3
Регистрация: 17.05.2014
Сообщений: 72
12.07.2014, 19:18 #2
WinApi так не работает.

Сначала создаете класс окна c привязкой к определенной callback функции для отлова сообщений, регистрируете его, потом создаете окно функцией CreateWindow. Собственно в callback функции и описываете все действия при нажатии на нужные кнопки...

Вот так: http://msdn.microsoft.com/en-US/libr...(v=vs.85).aspx
0
Nummerok
19 / 19 / 2
Регистрация: 30.05.2014
Сообщений: 431
12.07.2014, 19:34  [ТС] #3
deniska91, а без WinMain ? У меня Main вообще нету
0
Avazart
Эксперт С++
7213 / 5385 / 286
Регистрация: 10.12.2010
Сообщений: 23,798
Записей в блоге: 17
12.07.2014, 21:41 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Nummerok, Берешь книгу по WinApi и вспоминаешь буквы ...

Не по теме:

Наивно задавать такие вопросы, все равно никто не ответит, или стебаться начнуть...

1
zss
Модератор
Эксперт С++
6403 / 5969 / 1945
Регистрация: 18.12.2011
Сообщений: 15,384
Завершенные тесты: 1
13.07.2014, 09:32 #5
Смею предложить вариант с использованием менеджера диалогов
1. cpp файл:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <windows.h>
#include "resource.h"
int WINAPI fn(HWND hwnd,int cmd,WPARAM wp,LPARAM lp)
{
    switch(cmd)
    {
    case WM_CLOSE:
        EndDialog(hwnd,3);
        return 1;
    case WM_COMMAND:
        switch (LOWORD(wp))
        {
        case IDBUTTON1: // нажата кнопка 1
            EndDialog(hwnd,0); // из DialogBox возвращаем 0
            return 1;
        case IDBUTTON2: // нажата кнопка 2
            EndDialog(hwnd,1);// возвращаем 1
            return 1;
        case IDBUTTON3: // нажата кнопка 3
            EndDialog(hwnd,2); // возвращаем 2
            return 1;
        }
        return 0;
    }
    return 0;
}
int WINAPI WinMain(HINSTANCE hi,HINSTANCE,LPSTR,int) 
{
    int result;
    result=DialogBox(hi,"dialog",NULL,(DLGPROC)fn);
    char txt[4];
    itoa(result,txt,10);
    MessageBox(NULL,txt,"Result",MB_OK);
    return 0;
}
2. Файл ресурсов, (образец диалога):
Bash
1
2
3
4
5
6
7
8
9
10
11
#include "resource.h"
#include "windows.h"
dialog DIALOGEX 0, 0, 97, 96
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Dialog"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
    DEFPUSHBUTTON   "Button 1",IDBUTTON1,21,15,50,14
    DEFPUSHBUTTON   "Button 2",IDBUTTON2,21,37,50,14
    DEFPUSHBUTTON   "Button 3",IDBUTTON3,21,59,50,14
END
3. resource.h
C++
1
2
3
#define IDBUTTON1                       1001
#define IDBUTTON2                       1002
#define IDBUTTON3                       1003
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.07.2014, 09:32
Привет! Вот еще темы с ответами:

Реализовать через класс - C++
Дан целочисленный массив. Найти индекс первого максимального элемента и найти количество элементов, между первым и последним элементом

Реализовать через цикл for - C++
Дано вещественное число a, целое n. Вычислить: a (a-1) (a-2)...(a-n). Вот пишу, но цикл работает не верно... #include &lt;iostream&gt; ...

Реализовать данный код через функцию - C++
Делаю лабу...Все время сидел на Паскаль, а тут вдруг нужно на с++...Медленно, но уверенно, с синтаксисом разбираюсь. Сделал часть лабы... ...

нужно реализовать программу, через функцию - C++
нужно написать функцию дополнения уже существующего массива структур новыми структурами! написал программу, но без функции.. не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Yandex
Объявления
13.07.2014, 09:32
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru