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

Можно ли создать окно из консольного приложения - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ исправить код задачи( массивы и указатели)! http://www.cyberforum.ru/cpp-beginners/thread517424.html
Переделать эту задачу так, чтоб все операции через указатели #include <stdio.h> void main() { int var; bool label = true; printf ("\tmass_a\n"); int i, mass_a; for (i = 0; i <2; i ++ ) scanf(" \n%d\t" , &mass_a);
C++ Сумма отделенных цифр Привет всем! У меня вопрос) Вот пользователь вводит число Например, 1234 Ответ: Должно получиться 1+2+3+4=10. Как это сделать? Давайте только идеи. Языки Си, без всяких if,for,while. http://www.cyberforum.ru/cpp-beginners/thread517420.html
C++ Формировка массива по двум существующим
В каждом из целочисленных массивов X и Y нет повторяющихся элементов. Сформировать массив Z, в который включить из X элементы, отсутствующие в Y, а из Y - элементы, отсутствующие в X. // 1-3.cpp: Формировка массива Z из двух других // #include <iostream> #include <stdlib.h> #include <time.h> using namespace std; int main() {
Составить программу вывода на печать стихотворения (на C). C++
Ребят я очень сильно нуждаюсь в вашей помощи, если можете опубликуйте решение с объяснением плиз Составить программу вывода на печать стихотворения.
C++ Зашифровать jpeg изображение методом Фейгенбаума(логистическая парабола) http://www.cyberforum.ru/cpp-beginners/thread517396.html
Может кто-нибудь подскажет алгоритм решения задачи? Или вдруг кто-то делал подобное? Или подскажите, где можно найти исходники кодирования изображения каким-нибудь другим способом - алгоритмом.Желательно на языке C/C++. ПОЖАЛУЙСТА ОЧЕНЬ НАДО!!!
C++ Написать программу вычисления объема цилиндра на C Помогите с программой плиз буду очень благодарен, если можно с объяснениями :) Написать программу вычисления объема цилиндра. Ниже приведен рекомендуемый вид экрана во время выполнения программы (данные, введенные пользователем, выделены полужирным шрифтом). Вычисление объема цилиндра. Введите исходные данные: радиус основания (см) = 5 высота цилиндра (см) = 10 Объем цилиндра 1570.80... подробнее

Показать сообщение отдельно
stawerfar
 Аватар для stawerfar
141 / 55 / 4
Регистрация: 14.12.2010
Сообщений: 347
Записей в блоге: 1
13.03.2012, 18:02     Можно ли создать окно из консольного приложения
Да можно! Можно создать подобную конструкцию как в одну так и в другую сторону. Т.е. в консоли вызывать окна и наоборот в окнах вызывать консольное приложение.
Если Вы знакомы с программированием под Windows то используйте следующий алгоритм как для примера.
1.Создайте консольное приложение, но не забудьте указать все необходимые библиотеки и для оконного приложения.
2.Далее можно создать например класс "условны класс". И в методах прописать создание окна windows.
Ну например метод
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#include <iostream>
#include <windows.h>                     //Два файла с определениями, макросами
#include <windowsx.h>                  //и прототипами функций Windows
//глобальные переменные для рисования окна
HINSTANCE hInstance; HINSTANCE hPrevInst; 
LPSTR lpszArgs; int nWinMode;
/*Прототип используемой в программе оконной функции */
LRESULT CALLBACK WindowFunc(HWND, UINT, WPARAM, LPARAM); 
/*Произвольный класс*/
class exemple
{
    public: 
        /*Главная функция приложения WinMain*/
        int  WINAPI WinMain(  HINSTANCE hInstance, HINSTANCE hPrevInst, 
        LPSTR lpszArgs, int nWinMode) {
        char szWinName[ ]="MyWindow";      //Произвольное имя класса главного окна
        char szTitle[ ]="Программа";               //Произвольный заголовок окна
        MSG msg;                    //Структура msg типа MSG для получения сообщений Windows
        WNDCLASS wc;                                  //Структура wc типа WNDCLASS для задания 
                                    //характеристик окна
        /*Заполнение структуры wc типа WNDCLASS для описания класса главного окна*/
        ZeroMemory(&wc,sizeof(wc));                             //Обнуление всех членов структуры wc
        wc.hInstance= hInstance;                                       // Дескриптор приложения
        wc.lpszClassName=szWinName;                           // Имя класса окна
        wc.lpfnWndProc=WindowFunc;                           // Определение оконной функции 
        wc.style=0;                                                            // Стиль по умолчанию
        wc.hIcon=LoadIcon(NULL,IDI_APPLICATION);           //Стандартная пиктограмма
        wc.hCursor=LoadCursor(NULL,IDC_ARROW);              //Стандартный курсор мыши
        wc.hbrBackground=GetStockBrush(WHITE_BRUSH);         // Белый фон окна
        wc.lpszMenuName=NULL;                                  // Без меню
        wc.cbClsExtra=0;                                                  // Без дополнительной информации
        wc.cbWndExtra=0;                                                // Без дополнительной информации
        /*Регистрация класса главного окна*/
        if(!RegisterClass (&wc))                                         //Если класс окна не регистрируется
        {                                    // выводим сообщение и заканчиваем выполнение программы
        MessageBox (NULL,"Окно нерегестрируется","Ошибка",MB_OK);
        return 1;}                                                           // возвращаем код ошибки
        /*Создание главного окна и отображение его на мониторе*/
        HWND hwnd = CreateWindow (                           //Вызов функции API для создания ок-на
        szWinName,                                             // имя класса главного окна
                        szTitle,                                                       // заголовок окна
                        WS_OVERLAPPEDWINDOW,               // Стиль окна 
                        100,                                                            // x-координата левого угла окна
                        100,                                                            // y-координата левого угла окна
                        500,                                                            // Ширина окна
                        100,                                                            // Высота окна
                        HWND_DESKTOP,                                  // Без родительского окна
                        NULL,                                                       // Без меню
                        hInstance,                                                  // Дескриптор приложения
                        NULL);                                                     // Без дополнительных аргументов
        ShowWindow (hwnd, SW_SHOWNORMAL);       //  Вызов функции API
                                            // для отображения окна 
        /*Организация цикла обнаружения сообщений*/
        while(GetMessage(&msg,NULL,0,0))               // Если есть сообщение, передать его
                    // нашему приложению
        DispatchMessage(&msg);                               //и вызвать оконную функцию WindowFunc 
        return 0;                                                     //После выхода из цикла вернуться в Windows
        }                                                                    //Конец функции WinMain
        
};
 
/*Оконная функция WindowFunc главного окна, вызываемая Windows и получающая в качестве параметра сообщение из очереди сообщений данного приложения */
LRESULT CALLBACK WindowFunc(HWND hwnd, UINT message,
                                WPARAM wParam, LPARAM lParam)  {
switch(message) {                                      // выбор по значению сообщения (message)
case WM_DESTROY:                           //При завершении приложения пользователем
PostQuitMessage (0);                           //вызвать функцию API завершения приложения
break; 
default:                                    // Все сообщения, не обрабатываемые данной функцией,
                                            // направляются на обработку по умолчанию 
return DefWindowProc (hwnd,message,wParam,lParam);
}                                                           //Конец оператора switch
return 0;
}
//главная функция консольного приложения
int main(void)
{
    
    setlocale(LC_ALL,"Russian_Russia.1251");//изменения кодировки для вывода русского языка 
    SYSTEMCRASH: //точка возврата
    std::cout<<"Введите 1 что бы нарисовать окно, \nдля выхода нажмите клавишу 2 :";
    char ch_chose = '\0';
    std::cin>>ch_chose;
    class exemple val;
    switch(ch_chose)
    {
    case '2':
            exit(0);
            break;
    case '1':
        val.WinMain( hInstance,  hPrevInst, 
         lpszArgs,  nWinMode);
            break;
    default:
        std::cout<<"Недопустимый символ попробуйте ещё! \n";
        goto SYSTEMCRASH;
    }
 
 
}
Надеюсь идея ясна, окно есть ну а дальше кто на что горазд.
Сори за "грязную" работу но нет смысла оптимизировать. Сделал на быструю руку.
Написал на VS 10 если не идет прикрепляю скриншот.
Миниатюры
Можно ли создать окно из консольного приложения  
 
Текущее время: 16:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru