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

Картинка в С++ - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.73
Ozonka
0 / 0 / 0
Регистрация: 09.06.2011
Сообщений: 4
09.06.2011, 19:03     Картинка в С++ #1
Здравствуйте. Подскажите пожалуйста как вставить картинку в главное окно программы. И как сделать так, что бы не открывалось консольное окно, а только главное.
Язык С++, Среда - CodeBlocks.
Спасибо
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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#include "windows.h"
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
#include<iostream>
#include <stdlib.h>
 
#define max 100
#define min 10
 
int ref[max],count,frame[min],n,atoi(const char *str);
 
 
    //прототип оконной функции
    //сама функция расположена ниже
LRESULT CALLBACK WindowFunc(HWND, UINT, WPARAM, LPARAM);
 
    //имя оконного класса
char *szWinName = "MyClass";
 
    //обьявление переменных
HWND hMainWnd, hButton1, hButton2,hEdit0, hEdit1, hEdit2, hEdit3, hEdit4,
 hStatic,hStatic1,hStatic2,hStatic3,hStatic4,hStatic5,hStatic6,hStatic7,hStatic8,hStatic9,hStatic10,hStatic11,hStatic12,hStatic13,hStatic14,hStatic15,hStatic16,hStatic17;
MSG msg;
WNDCLASS wcl;
 
int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
    // заполнение структуры WNDCLASS
        wcl.hInstance = hInstance;
        wcl.lpszClassName = szWinName;
        wcl.lpfnWndProc = WindowFunc;
        wcl.style = 0;
        wcl.hIcon = LoadIcon(NULL, IDI_ASTERISK);
        wcl.hCursor = LoadCursor(NULL,IDC_ARROW);
        wcl.lpszMenuName = NULL;
        wcl.cbClsExtra = 0;
        wcl.cbWndExtra = 0;
        wcl.hbrBackground = (HBRUSH)COLOR_WINDOW;
 
    //регестрируем оконный класс
        RegisterClass(&wcl);
 
    //создаем главное окно и элементы управления
        hMainWnd = CreateWindow(szWinName, "Приборостроение", WS_OVERLAPPEDWINDOW ^ WS_THICKFRAME ^ WS_MAXIMIZEBOX, CW_USEDEFAULT, CW_USEDEFAULT,
                                                800, 600, HWND_DESKTOP, NULL, hInstance, NULL);
//создаем кнопки
        hButton1 = CreateWindow("button", "Solve", WS_CHILD | WS_VISIBLE, 40, 460, 70, 25, hMainWnd, NULL, hInstance, NULL);
        hButton2 = CreateWindow("button", "Exit", WS_CHILD | WS_VISIBLE, 700, 10, 70, 25, hMainWnd, NULL, hInstance, NULL);
 
// создание Надписи Х и окошка для ввода Х
        hEdit0 = CreateWindowEx(WS_EX_CLIENTEDGE, "edit", NULL, WS_CHILD | WS_VISIBLE | WS_BORDER, 30, 395, 100, 25, hMainWnd, NULL, hInstance, NULL);
        hStatic1 = CreateWindow("static", "X",WS_CHILD | WS_VISIBLE | SS_CENTER, 10, 400, 15, 25, hMainWnd, NULL, hInstance, NULL);
// создание Надписи У и окошка для ввода У
        hEdit1 = CreateWindowEx(WS_EX_CLIENTEDGE, "edit", NULL, WS_CHILD | WS_VISIBLE | WS_BORDER | ES_READONLY, 30, 430, 100, 25, hMainWnd, NULL, hInstance, NULL);
        hStatic2 = CreateWindow("static", "Y",WS_CHILD | WS_VISIBLE | SS_CENTER, 10, 435, 15, 25, hMainWnd, NULL, hInstance, NULL);
// создание Надписи
        hStatic = CreateWindow("static", "Ведите значение Х. Программа выдаст значение У.",WS_CHILD | WS_VISIBLE | SS_CENTER, 20, 340, 250, 30, hMainWnd, NULL, hInstance, NULL);
        hStatic3 = CreateWindow("static", "Выберите элемент",WS_CHILD | WS_VISIBLE | SS_CENTER, 400, 340, 250, 30, hMainWnd, NULL, hInstance, NULL);
    // отображаем и обновляем окно
        ShowWindow(hMainWnd, nCmdShow);
        UpdateWindow(hMainWnd);
 
    //цикл обработки сообщений
        while(GetMessage(&msg, NULL, 0, 0))
        {
                TranslateMessage(&msg);
                DispatchMessage(&msg);
        }
 
        return 0;
}
 
    // оконная функция
LRESULT CALLBACK WindowFunc(HWND hMainWnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
{
        switch(iMsg)
        {
        case WM_DESTROY:
                PostQuitMessage(0);
                break;
 
        case WM_COMMAND:
                {
                        if(((HWND)lParam == hButton2) && (HIWORD(wParam) == BN_CLICKED))
                                PostQuitMessage(0);
 
                        if(((HWND)lParam == hButton1) && (HIWORD(wParam) == BN_CLICKED))
                        {
                                char a0[19],a1[19], a2[19], a3[19], a4[19], a5[19], a6[19], a7[19],a8[19],a9[19],a10[19],a11[19],a12[19],a13[19],a14[19],a15[19],a16[19];
                                int l,i0, i1, i2, i3, i4, i5, i6, i7,j,k,stack[min],top=0,fault=0,i;
 
                                a1[19]=0;
                                GetWindowText(hEdit0, a0, 19);
 
 
 
 
 
                                SetWindowText(hEdit1, a0);
 
 
 
                        }
                    }
        default:
                return DefWindowProc(hMainWnd, iMsg, wParam, lParam);
        }
 
        return 0;
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.06.2011, 19:03     Картинка в С++
Посмотрите здесь:

C++ картинка в C++
C++ Двигающаяся картинка на С++
Как картинка хронтца в памяти? C++
Картинка в програму C++
Картинка в окно C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
09.06.2011, 19:40     Картинка в С++ #2
Цитата Сообщение от Ozonka Посмотреть сообщение
что бы не открывалось консольное окно, а только главное.
File->New->Project->WIN32 GUI project->Frame Based->...
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
101
102
103
104
105
106
107
108
109
110
#include "windows.h"
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
#include<iostream>
#include <stdlib.h>
#include <gdiplus.h> // подключить libgdiplus.a
 
#define max 100
#define min 10
 
int ref[max],count,frame[min],n,atoi(const char *str);
 
 
        //прототип оконной функции
        //сама функция расположена ниже
LRESULT CALLBACK WindowFunc(HWND, UINT, WPARAM, LPARAM);
 
        //имя оконного класса
char *szWinName = "MyClass";
 
        //обьявление переменных
HWND hMainWnd, hButton1, hButton2,hEdit0, hEdit1, hEdit2, hEdit3, hEdit4,
 hStatic,hStatic1,hStatic2,hStatic3,hStatic4,hStatic5,hStatic6,hStatic7,hStatic8,hStatic9,hStatic10,hStatic11,hStatic12,hStatic13,hStatic14,hStatic15,hStatic16,hStatic17;
MSG msg;
WNDCLASS wcl;
ULONG_PTR m_gdiplusToken;
 
int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{       // Initialize GDI+ :
        Gdiplus::GdiplusStartupInput gdiplusStartupInput;
        Gdiplus::GdiplusStartup(&m_gdiplusToken, &gdiplusStartupInput, NULL);
        // заполнение структуры WNDCLASS
        wcl.hInstance = hInstance;
        wcl.lpszClassName = szWinName;
        wcl.lpfnWndProc = WindowFunc;
        wcl.style = 0;
        wcl.hIcon = LoadIcon(NULL, IDI_ASTERISK);
        wcl.hCursor = LoadCursor(NULL,IDC_ARROW);
        wcl.lpszMenuName = NULL;
        wcl.cbClsExtra = 0;
        wcl.cbWndExtra = 0;
        wcl.hbrBackground = (HBRUSH)COLOR_WINDOW;
 
        //регестрируем оконный класс
        RegisterClass(&wcl);
 
        //создаем главное окно и элементы управления
        hMainWnd = CreateWindow(szWinName, "Приборостроение", WS_OVERLAPPEDWINDOW ^ WS_THICKFRAME ^ WS_MAXIMIZEBOX, CW_USEDEFAULT, CW_USEDEFAULT,
                                                800, 600, HWND_DESKTOP, NULL, hInstance, NULL);
//создаем кнопки
        hButton1 = CreateWindow("button", "Solve", WS_CHILD | WS_VISIBLE, 40, 460, 70, 25, hMainWnd, NULL, hInstance, NULL);
        hButton2 = CreateWindow("button", "Exit", WS_CHILD | WS_VISIBLE, 700, 10, 70, 25, hMainWnd, NULL, hInstance, NULL);
 
// создание Надписи Х и окошка для ввода Х
        hEdit0 = CreateWindowEx(WS_EX_CLIENTEDGE, "edit", NULL, WS_CHILD | WS_VISIBLE | WS_BORDER, 30, 395, 100, 25, hMainWnd, NULL, hInstance, NULL);
        hStatic1 = CreateWindow("static", "X",WS_CHILD | WS_VISIBLE | SS_CENTER, 10, 400, 15, 25, hMainWnd, NULL, hInstance, NULL);
// создание Надписи У и окошка для ввода У
        hEdit1 = CreateWindowEx(WS_EX_CLIENTEDGE, "edit", NULL, WS_CHILD | WS_VISIBLE | WS_BORDER | ES_READONLY, 30, 430, 100, 25, hMainWnd, NULL, hInstance, NULL);
        hStatic2 = CreateWindow("static", "Y",WS_CHILD | WS_VISIBLE | SS_CENTER, 10, 435, 15, 25, hMainWnd, NULL, hInstance, NULL);
// создание Надписи
        hStatic = CreateWindow("static", "Ведите значение Х. Программа выдаст значение У.",WS_CHILD | WS_VISIBLE | SS_CENTER, 20, 340, 250, 30, hMainWnd, NULL, hInstance, NULL);
        hStatic3 = CreateWindow("static", "Выберите элемент",WS_CHILD | WS_VISIBLE | SS_CENTER, 400, 340, 250, 30, hMainWnd, NULL, hInstance, NULL);
        // отображаем и обновляем окно
        ShowWindow(hMainWnd, nCmdShow);
        UpdateWindow(hMainWnd);
 
        //цикл обработки сообщений
        while(GetMessage(&msg, NULL, 0, 0))
        {
                TranslateMessage(&msg);
                DispatchMessage(&msg);
        }
 
        return 0;
}
 
        // оконная функция
LRESULT CALLBACK WindowFunc(HWND hMainWnd, UINT iMsg, WPARAM wParam, LPARAM lParam){
    switch(iMsg){
        case WM_DESTROY:
                Gdiplus::GdiplusShutdown(m_gdiplusToken);
                PostQuitMessage(0);
        break;
        case WM_COMMAND:
                        if(((HWND)lParam == hButton2) && (HIWORD(wParam) == BN_CLICKED))
                                PostQuitMessage(0);
                        if(((HWND)lParam == hButton1) && (HIWORD(wParam) == BN_CLICKED))
                        {
                                char a0[19],a1[19], a2[19], a3[19], a4[19], a5[19], a6[19], a7[19],a8[19],a9[19],a10[19],a11[19],a12[19],a13[19],a14[19],a15[19],a16[19];
                                int l,i0, i1, i2, i3, i4, i5, i6, i7,j,k,stack[min],top=0,fault=0,i;
 
                                a1[19]=0;
                                GetWindowText(hEdit0, a0, 19);
                                SetWindowText(hEdit1, a0);
                        }
        break;
        case WM_PAINT:{
            Gdiplus::Graphics graphics(hMainWnd);
            Gdiplus::Image image(L"1.jpg"); // путь к картинке
            graphics.DrawImage(&image, 0, 0, 150, 300);// положение и размер картинки
        }
        break;
        default: return DefWindowProc(hMainWnd, iMsg, wParam, lParam);
    }
    return 0;
}
Project->Build options->Linker Settings->Add указываете путь к файлу libgdiplus.a.
Ozonka
0 / 0 / 0
Регистрация: 09.06.2011
Сообщений: 4
09.06.2011, 21:11  [ТС]     Картинка в С++ #3
Подскажите пожалуйста, где найти libgdiplus.a. Я посмотрела в интернете в папке C:\Program Files\CodeBlocks\MinGW\lib его нету?
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
09.06.2011, 21:42     Картинка в С++ #4
у меня так: \CodeBlocks\MinGW32\lib\libgdiplus.a
Ozonka
0 / 0 / 0
Регистрация: 09.06.2011
Сообщений: 4
09.06.2011, 22:06  [ТС]     Картинка в С++ #5
Я везде посмотрела но такого файла нет, поиск тоже не нашел. Версия Codeblocks 10.05 не могли бы сказать свою версию, что бы я её скачала.
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
09.06.2011, 22:21     Картинка в С++ #6
тоже 10.05
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
09.06.2011, 22:31     Картинка в С++ #7
вот файл:
Вложения
Тип файла: 7z libgdiplus.7z (18.6 Кб, 20 просмотров)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.06.2011, 23:23     Картинка в С++
Еще ссылки по теме:

Картинка, меняющая цвет C++
C++ Картинка и траектория её движения

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

Или воспользуйтесь поиском по форуму:
Ozonka
0 / 0 / 0
Регистрация: 09.06.2011
Сообщений: 4
09.06.2011, 23:23  [ТС]     Картинка в С++ #8
Папки которую вы написали нет.
Цитата Сообщение от igorrr37 Посмотреть сообщение
\CodeBlocks\MinGW32\lib\libgdiplus.a
Скопировала в C:\Program Files\CodeBlocks\MinGW\lib
потом добавила в Project->Build options->Linker Settings->Add указала путь к файлу libgdiplus.a.
но все равно выдается ошибка: \23\main.cpp|7|error: gdiplus.h: No such file or directory|
Миниатюры
Картинка в С++   Картинка в С++  
Yandex
Объявления
09.06.2011, 23:23     Картинка в С++
Ответ Создать тему
Опции темы

Текущее время: 11:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru