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

Win32 API, MFC, или Windows Forms? - C++

Восстановить пароль Регистрация
Другие темы раздела
Visual C++ MFC смена типа приложения http://www.cyberforum.ru/cpp-beginners/thread1507468.html
Может кто подскажет, как без создания нового проекта переделать приложение с много документным интерфейсом в одно документный?
C++ Undefined reference to Много уже тем создано по даннму вопросу, но решения так и не нашел.. Есть конечно догадки, но как реализовать все равно не знаю. Прошу сильно не пинать, пытался сам разобраться, так и не смог. Начну по порядку: Определил класс GradeBook не расскрывая реализации элемент функций: #include <iostream> using namespace std; class GradeBook { public: GradeBook(string); http://www.cyberforum.ru/cpp-beginners/thread1507454.html
Заполнение символьной матрицы C++
Здравствуйте, У меня такой вопрос, хочу сделать char матрицу, но к сожалению, оно почему -то отображает не верно,,, заполняет так как надо, а выводит на экран - не правильно, в чем проблема? #include<iostream> using namespace std; void main() { const int size=5; char Star={0};
Обо всем! В кого выгодней переквалифицироваться программисту С++ ?
Здесь многие только начинают программировать... А вот кто уже работает программистом далеко не первый день и понимает, что хочется ему более высокооплачиваемой профессии, куда ему посоветуете переквалифицироваться? (это я не про себя :) )
C++ Задание имени файла пользователем при чтении и записи http://www.cyberforum.ru/cpp-beginners/thread1507391.html
Программа должна осуществлять запись в файл или чтение из файла (по выбору пользователя) целых чисел. Пока я написала вот такой код: #include <iostream> #include <fstream> using namespace std; int main() { int A,i, n; cout<<"Do you want to read or to write the file? Put 1 or 2."; cin>>A;
C++ Как работают ссылки 1 Здравствуйте маленький вопрос? int d; int &s=d; как работает почему их типы должны быть одинаковы? подробнее

Показать сообщение отдельно
Qt
Заблокирован
04.08.2015, 12:14     Win32 API, MFC, или Windows Forms?
Цитата Сообщение от russian_pepper Посмотреть сообщение
У меня всегда при создании приложения Qt Widget появляется окно выбор комплекта, и там всегда по умолчанию стоят четыре галочки:
Desktop Qt 5.5.0 NSVC2013 64 bit , ...2012 32 bit, Desktop Qt5.4.2 NSVC2012 OpenGL 32 bit, Desktop Qt 5.4.2 NSVC2013 64 bit2.
Это последствия того, что при установки онлайн инсталялтором не был просмотрен перечень того, что он предлагает ставить. Нужно было с лишнего снять галочки.
Используй только последнюю версию, с других галочки снимай, тебе нужна Desktop Qt 5.5.0 MSVC2013 64bit
Цитата Сообщение от russian_pepper Посмотреть сообщение
Для эксперимента, появились ошибки. Этот пример у меня в VS тоже не работал, подсказали включить:
Use Multi-Byte Character Set тогда всё заработало...
В VS этот костыль для тех, кто не понимает разницы, когда пишет char и wchar_t
Ерунда всё это. В QtCreator такого конечно же включить нельзя включить, т.к. нужно только для VS.
В общем, в Qt так код никто не пишет. Зачем тебе суперкрутой фреймворк Qt, если ты пишешь код не на нём?
Под Qt пишут кодом самого Qt. В частности в нём есть QString (для решения проблем с юникодом )
Если ты будешь писать платформозависимые вещи в коде на Qt, тогда никакой кроссплатформенности ты не получишь. Понимаешь в чём фокус, всё подобные кроссплатформенные вещи вшиты в недра Qt и он сам знает посредствам всяких #ifdef-ов, когда ему какой код применять в зависимости от платформы. Ты же должен использовать классы Qt (начинаются на букву Q, допустим QString, QVector), стандарт С++, STL, свои класса с платформонезависимым кодом, а так же сторонние кроссплатформенные библиотеки.

Про всякие #include <windows.h> - забудь.

А что же до твоего примера выше, которые написан на VisualStudio... Ну что ж, если понимать суть, то можно хоть в командной строке собрать, тут ведь нет ничего сложного. Для его сборки в QtCreator тебе необходимо сделать следующее:
1. Создать пустой проект (делай именно так): Файл->Новый файл или проект->Другой проект->Empty qmake Project
2. Добавить туда CPP файл: Файл->Новый файл или проект->(снизу в разделе "файлы и классы")C++->C++ Source File. Вводишь там любое имя ему, жмёшь далее .. далее...
3. В этот файл нужно скопировать свой код под WinApi (VS) и подправить там следующее:
a) Короче, в коде перед текстом везде пиши буковку L, например, L"Hello World", это говорит о том, что текст в юникоде.
б) Подключи библиотеки винды для винапишных фнукций..
Догадываясь, что ты см это не сделаешь , я тебе всё подправил. Вот готовый код:
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
#include <windows.h>
#include <tchar.h>
 
#pragma comment ( lib , "User32.lib")
#pragma comment ( lib , "gdi32.lib")
 
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
{
    static wchar_t szAppName[] = L"HelloWin";
    HWND hwnd;
    MSG msg;
    WNDCLASSEX wndclass;
    wndclass.cbSize = sizeof(wndclass);
    wndclass.style = CS_HREDRAW | CS_VREDRAW;
    wndclass.lpfnWndProc = WndProc;
    wndclass.cbClsExtra = 0;
    wndclass.cbWndExtra = 0;
    wndclass.hInstance = hInstance;
    wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
    wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);
    wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
    wndclass.lpszMenuName = NULL;
    wndclass.lpszClassName = szAppName;
    wndclass.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
    RegisterClassEx(&wndclass);
    hwnd = CreateWindow(
        szAppName, // window class name
        L"The Hello Program", // window caption
        WS_OVERLAPPEDWINDOW, // window style
        CW_USEDEFAULT, // initial x position
        CW_USEDEFAULT, // initial y position
        CW_USEDEFAULT, // initial x size
        CW_USEDEFAULT, // initial y size
        NULL, // parent window handle
        NULL, // window menu handle
        hInstance, // program instance handle
        NULL
        ); // creation parameters
    ShowWindow(hwnd, iCmdShow);
    UpdateWindow(hwnd);
    while (GetMessage(&msg, NULL, 0, 0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return msg.wParam;
}
LRESULT CALLBACK WndProc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
{
    HDC hdc;
    PAINTSTRUCT ps;
    RECT rect;
    switch (iMsg)
    {
    case WM_CREATE:
        //PlaySound("hellowin.wav", NULL, SND_FILENAME | SND_ASYNC);
        return 0;
 
    case WM_PAINT:
        hdc = BeginPaint(hwnd, &ps);
        GetClientRect(hwnd, &rect);
        DrawText(hdc, L"Hello, Windows 95!", -1, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER);
        EndPaint(hwnd, &ps);
        return 0;
    case WM_DESTROY:
        PostQuitMessage(0);
        return 0;
    }
    return DefWindowProc(hwnd, iMsg, wParam, lParam);
}
Всё, собирай и запускай.
 
Текущее время: 11:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru