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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.88
Zakat
6 / 6 / 0
Регистрация: 24.12.2012
Сообщений: 149
#1

Создание окна WinAPI в Visual Studio, графика и кнопки - C++

27.04.2013, 21:47. Просмотров 2625. Ответов 13
Метки нет (Все метки)

собственно вопрос - как?
конечно понимаю что можно и другие кнопочки потыкать, может там и проще будет. Интересует именно это.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.04.2013, 21:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создание окна WinAPI в Visual Studio, графика и кнопки (C++):

Visual Studio 2008, WinAPI - Openfile - C++
Подскажите, как используеться функция GetOpenFileName . НУ или скажу так. Мне нужно чтобы вылез диалог с выбором фаила, и получить путь к...

Visual Studio 2008, WinAPI - Вывод изображения - C++
Как вывести изображение на форму? В гугле искал, но там что-то ничего того,что я могу понять не нашёл =( Понял только , что...

Создание окна без WinAPI - C++
Хотелось узнать, как создавать окна без использования WinAPI.

Построение графика c++ visual studio 2013 - C++
Здравствуйте, подскажите пожалуйста как сделать вот такой график создал 4 массива, high low open close, данные разумеется в них есть.

Черчение графика через C++ Visual Studio - C++
Нужно начерить график к завтрашнему, а я не в зуб ногой Есть ли материал в интернете, как чертить графики через C++ Visual Studio 2010?...

Простая графика в Visual Studio 2013 - C++
Как в Visual Studio 2013 подключить библиотеки для графики, чтоб просто рисовать и двигать круги , линии , квадраты и прочие простые штуки?...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Jupiter
Каратель
Эксперт С++
6554 / 3975 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
27.04.2013, 21:49 #2
конкретизируй вопрос
0
Zakat
6 / 6 / 0
Регистрация: 24.12.2012
Сообщений: 149
27.04.2013, 22:03  [ТС] #3
интересует код, чтобы выводил окно с указанными параметрами, ширина, высота, положение на экране.
на Visual Studio

Добавлено через 3 минуты
наверно это не так уж и просто как кажется))
пока копаюсь дальше по форуму

Добавлено через 6 минут
хм если создать не "консольное приложение win32" а просто "приложение Win32", генерируется код на создание окна, это круто...
тогда другой вопрос, если ниже писать код, нужно будет изменять сгенерированный код?
0
Issues
430 / 365 / 37
Регистрация: 06.08.2012
Сообщений: 961
27.04.2013, 22:08 #4
Цитата Сообщение от Zakat Посмотреть сообщение
если ниже писать код, нужно будет изменять сгенерированный код?
это как бы шаблон (но не совсем), изменяй и добавляй в него всё что нужно.
1
Croessmah
Эксперт CЭксперт С++
13226 / 7498 / 845
Регистрация: 27.09.2012
Сообщений: 18,416
Записей в блоге: 3
Завершенные тесты: 1
27.04.2013, 22:10 #5
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
#include <windows.h>
#include <iostream>
 
 
LRESULT CALLBACK WndProc(HWND hWnd,UINT message,WPARAM wParam, LPARAM lParam);
#define WMAIN_CLASSNAME     "WndClassTestMyName???"
#define WMAIN_CAPTION       "WndCaption"
 
int main(){
    HINSTANCE hInstance=(HINSTANCE)GetModuleHandle(NULL);
    HWND hWnd;
    MSG msg;
    WNDCLASS wc;
    int width,height;
 
    std::cout<<"Enter width: ";
    std::cin>>width;
    std::cout<<"Enter height";
    std::cin>>height;
 
    wc.cbClsExtra=0;
    wc.cbWndExtra=0;
    wc.hbrBackground=(HBRUSH)(COLOR_WINDOW+1);
    wc.hCursor=LoadCursor(NULL,IDC_ARROW);
    wc.hIcon=LoadIcon(NULL,IDI_WINLOGO);
    wc.hInstance=hInstance;
    wc.lpfnWndProc=WndProc;
    wc.style=CS_HREDRAW | CS_VREDRAW;
    wc.lpszClassName=WMAIN_CLASSNAME;
    wc.lpszMenuName=NULL;
 
    if(!RegisterClass(&wc))
        return 1;
 
    hWnd=CreateWindow(WMAIN_CLASSNAME,WMAIN_CAPTION,/*WS_OVERLAPPEDWINDOW*/WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_MINIMIZEBOX|WS_MAXIMIZEBOX | WS_VISIBLE,CW_USEDEFAULT,CW_USEDEFAULT,width,height,HWND_DESKTOP,NULL,hInstance,0);
 
    if (!hWnd)
        return 1;
 
    while(GetMessage(&msg,NULL,0,0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return 0;
}
 
 
LRESULT CALLBACK WndProc(HWND hWnd,UINT message,WPARAM wParam, LPARAM lParam)
{
    PAINTSTRUCT ps;
    HDC hdc;
    switch (message)
    {
    case WM_SIZE:
        InvalidateRect(hWnd,NULL,true);
        break;
    case WM_PAINT:
        hdc = BeginPaint(hWnd, &ps);
 
        EndPaint(hWnd,&ps);
        break;
    case WM_CLOSE:
        if (MessageBox(hWnd,"Close?","Msg Caption",MB_YESNO)==IDYES){
            return DefWindowProc(hWnd,message,wParam,lParam);
        }
        break;
    case WM_DESTROY:
        PostQuitMessage(0);
        break;
    default: 
        return DefWindowProc(hWnd,message,wParam,lParam);
    }
    return 0;
}
1
Zakat
6 / 6 / 0
Регистрация: 24.12.2012
Сообщений: 149
27.04.2013, 22:14  [ТС] #6
4 IntelliSense: значение типа "const char *" нельзя присвоить сущности типа "LPCWSTR" d:\Мои документы\Visual Studio 2012\Projects\ConsoleApplication3\ConsoleApplication3\ConsoleApplication3.cpp 33 21 ConsoleApplication3

оу вот такое при компиляции
0
Croessmah
Эксперт CЭксперт С++
13226 / 7498 / 845
Регистрация: 27.09.2012
Сообщений: 18,416
Записей в блоге: 3
Завершенные тесты: 1
27.04.2013, 22:18 #7
Отключить Юникод в настройках проекта:
Создание окна WinAPI в Visual Studio, графика и кнопки
1
Zakat
6 / 6 / 0
Регистрация: 24.12.2012
Сообщений: 149
27.04.2013, 22:23  [ТС] #8
Спасибо, буду эксперементировать =)
0
Khludenkov
31 / 25 / 4
Регистрация: 30.04.2014
Сообщений: 406
15.07.2015, 16:57 #9
Здравствуйте. Вопрос по вышеупомянутой теме.

1. Можно ли на этом окне рисовать (к примеру график?). Если можно, пример постановки пары точек.
2. Сложно ли добавить две стандартные кнопки кнопки с обработчиками событий?

Добавлено через 1 минуту
Цитата Сообщение от Croessmah Посмотреть сообщение
Отключить Юникод в настройках проекта:
Лучше ставить 'L' перед строковыми константами.
0
Croessmah
Эксперт CЭксперт С++
13226 / 7498 / 845
Регистрация: 27.09.2012
Сообщений: 18,416
Записей в блоге: 3
Завершенные тесты: 1
15.07.2015, 17:01 #10
1) Да
2) Нет
Лучше ставить 'L' перед строковыми константами
_T
1
Butt-Head
Заблокирован
15.07.2015, 17:06 #11
Цитата Сообщение от Khludenkov Посмотреть сообщение
Лучше ставить 'L' перед строковыми константами.
Лучше использовать Qt и не парить мозг с убогими штатными окнами WinAPI
0
Khludenkov
31 / 25 / 4
Регистрация: 30.04.2014
Сообщений: 406
15.07.2015, 17:16 #12
Цитата Сообщение от Butt-Head Посмотреть сообщение
Лучше использовать Qt

1. Проект написан на VS2010 и переписывать некогда.
2. Там одинаково подключаются dll и lib от visual studio? Знаю что у билдера с этим проблемы.



Croessmah, подскажите, к примеру, как создать линию, состоящую из точек заданного цвета на вышеприведённом окне.

Добавлено через 2 минуты
Croessmah, то есть надо просто вывести картинку из bmp-файла, которая бы обновлялась раз в секунду.
Сам кадр получается в консольном приложении.

Пытался добавить windows form. Проект сразу в cli портировался. И namespaces ругаться стали.
0
Butt-Head
Заблокирован
15.07.2015, 17:42 #13
Цитата Сообщение от Khludenkov Посмотреть сообщение
Проект написан на VS2010 и переписывать некогда.
Под проектом ты имеешь ввиду пустое окно?
Цитата Сообщение от Khludenkov Посмотреть сообщение
Там одинаково подключаются dll и lib от visual studio? Знаю что у билдера с этим проблемы.
Где там? lib - это либо библиотека импорта для dll, либо статическая либо. Если ведаешь, что творишь, то подключишь где угодно без проблем.

Цитата Сообщение от Khludenkov Посмотреть сообщение
Пытался добавить windows form. Проект сразу в cli портировался. И namespaces ругаться стали.
Чего ты добиться в итоге хочешь? Что за софт ты пишешь и что он должен делать?
0
Khludenkov
31 / 25 / 4
Регистрация: 30.04.2014
Сообщений: 406
16.07.2015, 15:06 #14
Есть консольный проект на visual c++. В нём dll, lib, h - файлы. Причём где-то h-ки где-то dll-ки, и не все парные. В линкере подключена одна единственная lib (без соответствующего h-файла). Надо сделать к проекту GUI.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.07.2015, 15:06
Привет! Вот еще темы с ответами:

кнопки в Visual Studio (2010) - C++
как сделать чтобы при нажатии на кнопку она окрашивалась в другой цвет?

Могут ли мне ответить на support.microsoft.com по поводу WinAPI, если у меня visual studio express? - C++
Спрашивать в других местах - не предлагать. По моей проблеме с WinAPI даже в MSDN нет документации. Значит, по логике, надо спросить у...

Как соотнести размер картинки и окна программы в visual studio - C++
Привет всем. Просьба не переносить, пожалуйста, тему в другой раздел. Есть картинка предположим 500x300px (ИСП. Пиксели). Есть...

Создание форм в visual studio - C++
Здравствуйте, установил себе visual studio 2013 пробную и не найду меню где делать гуй, до этого баловался на c++ builder, скажите...


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

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

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