Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++: WinAPI
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
n971030
155 / 102 / 4
Регистрация: 23.01.2010
Сообщений: 1,317
1

Как прикрепить к окну из ресурса меню тоже из ресурса?

18.05.2014, 11:48. Просмотров 529. Ответов 2
Метки нет (Все метки)

Как прикрепить к окну из ресурса меню тоже из ресурса?

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
/*[url]http://www.lib.csu.ru/DL/bases/prg/frolov/books/bsp/v22/ch3.html*/[/url]
 
#include <Windows.h>
#include <tchar.h>
#include "resource.h"
#include <commctrl.h>
#pragma comment(lib, "ComCtl32.Lib")
 
/*Определяет кол-во и названия столбцов*/
const int colNum = 6;
char* header[colNum] = {"#", "Дата", "Название", "Размер", "Статус", "Оценка"};
 
/*Добавляет столбцы в таблицу*/
int SetListViewColumns(HWND hWndLV, int colNum, int textMaxLen, char** header)
{
    RECT rcl;
    GetClientRect(hWndLV, &rcl);
 
    int index = -1;
 
    LVCOLUMN lvc;
    lvc.mask = LVCF_TEXT | LVCF_WIDTH;
    lvc.cx = (rcl.right - rcl.left) / colNum;
    lvc.cchTextMax = textMaxLen;
 
    for (int i = 0; i < colNum; i++)
    {
        lvc.pszText = (LPWSTR)header[i];
        index = ListView_InsertColumn(hWndLV, i, &lvc);
        if (index == -1) break;
    }
 
    return index;
}
 
BOOL WINAPI AddListViewItems(HWND hWndLV, int colNum, int textMaxLen, LPWSTR line)
{
    int iLastIndex = ListView_GetItemCount(hWndLV);
 
    LVITEM lvi;
    lvi.mask = LVIF_TEXT;
    lvi.cchTextMax = textMaxLen;
    lvi.iItem = iLastIndex;
    lvi.pszText = line;
    lvi.iSubItem = 0;
 
    if (ListView_InsertItem(hWndLV, &lvi) == -1)
        return FALSE;
    for (int i = 1; i < colNum; i++)
        ListView_SetItemText(hWndLV, iLastIndex, i, L"Тест1");
 
    return TRUE;
}
 
 
 
LRESULT CALLBACK MainDlgProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
{
    switch(Msg)
    {
 
    case WM_CLOSE:
        EndDialog(hWnd, 1);
        break;
 
    case WM_INITDIALOG:
        {
 
 
            
 
        HWND hWndLV = CreateWindow(WC_LISTVIEW, L"",
            WS_CHILD | LVS_REPORT | WS_VISIBLE,
            0, 0, 300, 300,
            hWnd, (HMENU)NULL, GetModuleHandle(NULL), NULL);
 
        /*Вставим столбики в таблицу*/
    
            SetListViewColumns(hWndLV, colNum, 25, header);
        /*Строки в таблицу*/
            AddListViewItems(hWndLV, 0, 25, L"TETX"); 
 
             ShowWindow(hWndLV, SW_SHOWDEFAULT);
    
 
        }; break;
 
    default: return false; 
    }
    return 0;
}
 
int __stdcall WinMain(HINSTANCE hInst, HINSTANCE hInstance, PCHAR Line, int Mode)
{
    InitCommonControls(); 
    /*Инициализация главного окна*/
    DialogBox(hInst, MAKEINTRESOURCE(IDD_DIALOG2), NULL, (DLGPROC)MainDlgProc);
 
 
 
    return 0;
}
Добавлено через 6 минут
Я попробовал так но ничего не заработало
SetMenu(hWnd, (HMENU)MAKEINTRESOURCE(IDR_MENU1));

Добавлено через 8 минут
и так тоже не работает

HMENU hMenu=LoadMenu(hInst_, MAKEINTRESOURCE(L"IDR_MENU1"));
SetMenu(hWnd, hMenu);
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.05.2014, 11:48
Ответы с готовыми решениями:

Каким образом из файла-ресурса меню должно передаться в основную часть программы?
Ночи доброй, форумчане! Вопрос следующий: что именно описывается в .h-файле, каким образом из...

Как получить hWnd ресурса?
как получить hWnd ресурса? Есть у меня на форме ресурса TreeView но для того чтобы туда добавить...

Как получить id ресурса по названию?
Подскажите, как можно из строкового значения, где впринципе записана константа(R.drawable.123),...

Как использовать картинку из ресурса
Дело такое. Нужно обращаться к картинке а таскать ее за собой неохота. Я вот и подумал а можно как...

Как загрузить строку из ресурса ?
Есть dll(lang.dll) в нее положил два ресурса en.res и ru.res как мне получить строки из...

2
oxyfat
66 / 63 / 21
Регистрация: 01.05.2014
Сообщений: 247
18.05.2014, 15:11 2
Приветствую!

C++
1
2
3
4
5
6
7
8
9
10
11
    case WM_INITDIALOG: 
     {
     /* ... */
 
     HMENU hMenu=LoadMenu(GetModuleHandle(NULL),MAKEINTRESOURCE(IDR_MENU1));
     SetMenu(hWnd,hMenu);
 
     /* ... */
 
     return TRUE;
     }
1
n971030
155 / 102 / 4
Регистрация: 23.01.2010
Сообщений: 1,317
18.05.2014, 20:43  [ТС] 3
Цитата Сообщение от oxyfat Посмотреть сообщение
HMENU hMenu=LoadMenu(GetModuleHandle(NULL),MAKEINTRESOURCE(IDR_MENU1));
расшифруйте строку по русски

Добавлено через 3 минуты
Цитата Сообщение от oxyfat Посмотреть сообщение
case WM_INITDIALOG: { /* ... */ HMENU hMenu=LoadMenu(GetModuleHandle(NULL),MAKEINTRESOURCE(IDR_MENU1)); SetMenu(hWnd,hMenu); /* ... */ return TRUE; }

выполнил такой код но не совсем то что ожидалось - меню конечно появилось но субменю не появилось. почему это может быть?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.05.2014, 20:43

Как подгрузить картинку из ресурса?
Сотни туториалов и страниц гугла просмотренных так и не дали результата по вопросу как же загрузить...

Как установить фон в UserControl из ресурса?
Здравствуйте, у меня уже горит, поэтому пишу знающим людям. Перерыл уже всю сеть но внятного ответа...

Как получить скриншот стороннего ресурса?
привет.Как можно осуществить задумку?На выходе должно быть изображение. Добавлено через 5 часов...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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