Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.10.2010, 14:35   #1
Nikita1987
Пользователь
 
Регистрация: 06.04.2010
Сообщений: 30
По умолчанию Меню

Всем добрый день!

У меня есть вот такой вот код программы:
Код:
#include <windows.h>

LRESULT CALLBACK WindowProc(HWND, UINT, WPARAM, LPARAM);

TCHAR szClassWindow[] = TEXT("Каркасное приложение");	


int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpszCmdLine, int nCmdShow)
{
	HWND hWnd;
	
	MSG lpMsg;
	WNDCLASSEX wcl;
	wcl.cbSize = sizeof(wcl);	
	wcl.style = CS_HREDRAW | CS_VREDRAW;	
	wcl.lpfnWndProc = WindowProc;	
	wcl.cbClsExtra = 0;	
	wcl.cbWndExtra = 0; 	
	wcl.hInstance = hInst;	
	wcl.hIcon = LoadIcon(NULL, IDI_APPLICATION);	
	wcl.hCursor = LoadCursor(NULL, IDC_ARROW);	
	wcl.hbrBackground = ((HBRUSH)(COLOR_WINDOW+1)); 
	wcl.lpszMenuName = NULL;	
	wcl.lpszClassName = szClassWindow;	
	wcl.hIconSm = NULL;	
	if (!RegisterClassEx(&wcl))
		return 0;
	hWnd = CreateWindowEx(0, szClassWindow, TEXT("Шашки"), WS_OVERLAPPEDWINDOW,	
		CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInst, NULL);
	ShowWindow(hWnd, nCmdShow);
	UpdateWindow(hWnd);	
	while(GetMessage(&lpMsg, NULL, 0, 0))
	{
		TranslateMessage(&lpMsg);	
		DispatchMessage(&lpMsg);	
	}
	return lpMsg.wParam;
}	

LRESULT CALLBACK WindowProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
	
	switch(message)
	{
		case WM_DESTROY: 
			PostQuitMessage(0);
			break;	
		default:
			return DefWindowProc(hWnd, message, wParam, lParam);
	}
	return 0;
}
Работаю я в VisualStudio2008

Создал меню, присвоил ему имя IDR_MENU1 . Подскажите, как мне его подключить к моему окну?
начинающий программист
Nikita1987 вне форума Ответить с цитированием
Старый 31.10.2010, 15:04   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

wcl.lpszMenuName = NULL;
я думаю понятно за что строчка отвечает
+ еще есть параметр CreateWindowEx.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 31.10.2010, 15:20   #3
Nikita1987
Пользователь
 
Регистрация: 06.04.2010
Сообщений: 30
По умолчанию

Эт я понял!
Я не магу понять и найти как его туда записать!
wcl.lpszMenuName = NULL что нужно написать вместо NULL
начинающий программист
Nikita1987 вне форума Ответить с цитированием
Старый 31.10.2010, 15:27   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Создал меню, присвоил ему имя IDR_MENU1 .
туда надо присвоить имя вашего меню.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 31.10.2010, 15:31   #5
Nikita1987
Пользователь
 
Регистрация: 06.04.2010
Сообщений: 30
По умолчанию

Код:
hWnd = CreateWindowEx(0, szClassWindow, TEXT("Шашки"), WS_OVERLAPPEDWINDOW,	
		CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL,IDR_MENU1, hInst, NULL);


выбивает вот такую ошибку
Error 1 error C2664: 'CreateWindowExW' : cannot convert parameter 10 from 'int' to 'HMENU' c:\users\корпорация\desktop\неделя_ 39\visual c++\source\enumeratechildwindows\en umeratechildwindows\main.cpp 29
начинающий программист
Nikita1987 вне форума Ответить с цитированием
Старый 31.10.2010, 15:42   #6
Nikita1987
Пользователь
 
Регистрация: 06.04.2010
Сообщений: 30
По умолчанию

Код:
HMENU hMenu = LoadMenu(GetModuleHandle(0), MAKEINTRESOURCE(IDR_MENU1));
	SetMenu(hDialog, hMenu);
Спасибо за помощь! Сделал так!
начинающий программист
Nikita1987 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
меню как на сайте p&g (меню ввиде таблицы) ilma55 WordPress и другие CMS 0 19.09.2010 19:09
И сново sendMessage =) Как нажать пункт верхнего меню и меню правой кнопки? TwiX Win Api 9 15.10.2009 01:57
Оформление меню (вытекает из другого меню) TilerDerton Общие вопросы Delphi 3 20.08.2009 02:20
Для доступа к пунктам главного меню клавиши ALT + подчеркнутая буква меню в офис 2007? Окоча Юра Microsoft Office Word 1 24.02.2009 12:29
Меню с Items в виде набора Bitmap (как меню редактирования в Word'е) chandrasecar Мультимедиа в Delphi 7 14.01.2009 09:20