Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 23.06.2011
Сообщений: 10
1

Вопросы начинающего

24.06.2011, 15:18. Показов 724. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет!
Начинаю изучать Visual C++ 2010 Express. Пишу под Win32 (поддержки MFC в экспресс версии нет).
Раньше немного писал в Builder 6. После него Visual очень непривычен.

Подскажите:
1) Как создать главное окно на основе диалога в ресурсах? (именно главное окно)
2) Можно ли создавать элементы управления современного стиля (а не квадратные, которые были во времена Win 98). Я пробывал создавать с помощью:
C++
1
CreateWindow(_T("button"),_T("Посчитать"), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 50, 170, 80, 30, hWnd, (HMENU)10004, hInst, NULL);
P.S. Про CLR знаю, но не хочу заставлять пользователей фреймворки ставить.

Добавлено через 19 часов 48 минут
Бьюсь уже пятый день, только результатов пока мало.

Попробывал создать диалог главного окна (остальной код не менял):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
   HWND hWnd;
 
   //hInst = hInstance; // Сохранить дескриптор экземпляра в глобальной переменной
 
   //hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
   //   CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);
 
   //if (!hWnd)
   //{
   //   return FALSE;
   //}
 
   //ShowWindow(hWnd, nCmdShow);
   //UpdateWindow(hWnd);
   DialogBox(hInst, MAKEINTRESOURCE(IDD_MAIN), NULL, (DLGPROC)WndProc);
 
   return TRUE;
}
Запускается, кнопки работают, но не работает главное меню . В чем косяк ?

Добавлено через 1 час 17 минут
Сдается мне, что я один с голым Win API бьюсь...
Может вопрос некорректно сформулировал? Подскажите, плиз
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.06.2011, 15:18
Ответы с готовыми решениями:

Посоветуйте литературу по Visual Studio 6 для начинающего
Посоветуйте пожалуйста литературу для полного ноля в c++ с примерами на vc++ 6. Скачал несколько...

Вопросы начинающего
Здравствуйте в С++ я еще новичок, поэтому, если позволите то я задам несколько вопросов -class A:...

Вопросы начинающего
Здравствуйте. Самостоятельно приступила к изучению Visual C++, т.к. наставников в шаговой...

Банальные вопросы начинающего
Тренируюсь, выполняю простенькие задачки. По сути надо сделать MDI-приложение, которое позволяет...

3
Brainsbreaker
899 / 374 / 54
Регистрация: 01.02.2011
Сообщений: 1,608
24.06.2011, 18:55 2
What's up, Doc?

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
#include "stdafx.h"
#include "resource.h"
 
BOOL DlgProc (HWND hWnd, UINT uMessage, WPARAM wParam, LPARAM lParam); 
 
int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpszCmdLine, int nCmdShow)
{
    HWND hDlg = CreateDialog (hInst, MAKEINTRESOURCE (IDD_MAIN), NULL, (DLGPROC) DlgProc);
    ShowWindow (hDlg, SW_SHOW);
    
    MSG msg;
    
    while (GetMessage(&msg,0,0,0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return msg.wParam;
}
 
BOOL DlgProc (HWND hWnd, UINT uMessage, WPARAM wParam, LPARAM lParam)
{
    switch(uMessage)
    {
    case WM_CLOSE:
        
        DestroyWindow(hWnd);
        PostQuitMessage(0);
        break;
    
    case WM_COMMAND:
        
        if (LOWORD(wParam) == IDOK)
            MessageBox (hWnd, "", "", MB_OK);
        break;
    }
    return FALSE;
}
1
935 / 760 / 299
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
24.06.2011, 21:55 3
Цитата Сообщение от Cyber10 Посмотреть сообщение
Можно ли создавать элементы управления современного стиля (а не квадратные, которые были во времена Win 98). Я пробывал создавать с помощью:
забрось в проект в ресурсы файл XML .manifest если хочешь стили использоавть системы.
1
0 / 0 / 0
Регистрация: 23.06.2011
Сообщений: 10
26.06.2011, 12:16  [ТС] 4
Digit@ll, xAtom большое спасибо за советы!
С вопросом №1 все получилось - диалог создал и он корректно работает.
А вот с манифестом возникли трудности. В инете накопал про него достаточно много инфы, но пока что-то не клеется... Пробывал следующий текст манифеста:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
    version="5.1.0.0"
    processorArchitecture="x86"
    name="Author.Program_Name"
    type="win32"
/>
<description>Program Description</description>
<dependency>
    <dependentAssembly>
    <assemblyIdentity
        type="win32"
        name="Microsoft.Windows.Common-Controls"
        version="6.0.0.0"
        processorArchitecture="x86"
        publicKeyToken="6595b64144ccf1df"
        language="*"
    />
</dependentAssembly>
</dependency>
</assembly>
Его сохранял и во внешний файл с именем ИмяПриложения.exe.manifest, и в ресурсы запихивал с ID=24, но окошки не меняются

Добавлено через 46 минут
И еще важное замечание: ОС Windows 7

Добавлено через 45 минут
Вопрос с манифестом решен!
Всем спасибо!

В свойствах проекта для конфигурации Release "Свойства конфигурации - Компановщик - Файл манифеста" в свойстве "Дополнительные зависимости манифеста" установить строку
C++
1
type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'
Красивые кнопки будут только при компиляции конфигурации Release!

больше ничего делать не нужно
0
26.06.2011, 12:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.06.2011, 12:16
Помогаю со студенческими работами здесь

Вопрос начинающего
Что означают эти значки: 1) :: 2) -&gt; где они используються и зачем они нужны, скажите...

C++ для начинающего!
Добрый день! Вопрос местным знатокам и гуру. Есть желание начать программировать на C++. Проблема в...

Вопрос начинающего
Добрый вечер не не могли бы мне помочь. Я разработал систему терминального доступа на протоколе...

Вопрос от начинающего
скажи те пожалуйста какой принцип лежит в основе использования WinApi.... для создания окна мы...

вопрос начинающего
Цель: В зависимости от значения переменной flag_kvadr отобразить в клиентской области главного окна...

Вопрос начинающего
Здравствуйте. Мне сейчас 16 лет и в сентябре я пойду в 11 класс (я школота). В будущем я хочу стать...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru