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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.06.2010, 22:49   #1
Pirotexnik
Форумчанин
 
Аватар для Pirotexnik
 
Регистрация: 22.03.2009
Сообщений: 110
По умолчанию Вывод сообщений\уведомлений\ошибок на экран

Возможно, очень глупый вопрос, но всётаки, как в оконном приложение сделать вывод таких сообщений?

Например:

Код:
case WM_LBUTTONDOWN: 
                   PostMessage(ЧТО ТУТ?); 
                   break;
P.S. Что-то типа showmessage в делфи.

Последний раз редактировалось Pirotexnik; 02.06.2010 в 22:55.
Pirotexnik вне форума Ответить с цитированием
Старый 02.06.2010, 23:02   #2
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Код:
ShowMessage(0, "Что-то", "Что-то еще", MB_OK);
?
Вечно путаю, кто из них (2й и 3й) - заголовок, какой - текст.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 02.06.2010, 23:08   #3
Pirotexnik
Форумчанин
 
Аватар для Pirotexnik
 
Регистрация: 22.03.2009
Сообщений: 110
По умолчанию

Что-то не получается, просто сегодня только перешёл с консоли на изучение окошечек (самоучка).

Помогите, пожалуйста, понять что не так:

Код:
// Включаем необходимый заголовочный файл для Windows-программ
#include <windows.h>

// Объявление функции окна (оконной процедуры)
LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);

HINSTANCE hInst; // Идентификатор приложения

// Указатель на константную строку символов - имя программы и класса окна
TCHAR szTitle[] = L"MyProg";
TCHAR szWindowClass[] = L"Prog";

// Точка входа в программу - функция WinMain
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
			LPSTR lpCmdLine, int nCmdShow)
{
HWND hWnd; // Уникальный идентификатор окна (handle)
MSG msg; // Объявление структуры типа MSG, для работы с сообщениями

hInst = hInstance; // Сохраняем идентификатор приложения

// Заполняем структуру WNDCLASS
WNDCLASS wc;
	// Инициализируем выделенную для структуры память нулями
	ZeroMemory(&wc, sizeof(wc));
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = (WNDPROC)WndProc;
wc.hInstance = hInst; 
wc.hIcon = LoadIcon(hInst, IDI_APPLICATION);
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wc.lpszClassName = szWindowClass;

RegisterClass(&wc); // Создаем и регистрируем оконный класс

// Создаем окно программы
hWnd = CreateWindow(
	szWindowClass, // Имя класса окна
	szTitle, // Заголовок окна
	WS_OVERLAPPEDWINDOW, // Стиль окна
	CW_USEDEFAULT, 0, // Горизонтальная и вертикальная позиции окна
	300, 300, // Ширина и высота окна
	NULL, // Хендл родительского окна
	NULL, // Хендл меню
	hInst, // Идентификатор приложения
	NULL); // Дополнительные данные окна

ShowWindow(hWnd, SW_SHOW); // Отображаем окно
UpdateWindow(hWnd); // Перерисовываем окно

	// Стандартный цикл обработки сообщений
	while(GetMessage(&msg, NULL, 0, 0))
	{
		TranslateMessage(&msg);
		DispatchMessage(&msg);
	}

return msg.wParam;
}

// Оконная процедура
LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
	switch(msg)
	{
		case WM_DESTROY:
			PostQuitMessage(0);
			break;
		case WM_KEYDOWN:
                   PostMessage(hWnd,WM_DESTROY,0,0); 
					break;
		case WM_RBUTTONDOWN:
					ShowMessage(0, "Что-то", "Что-то еще", MB_OK); 
					break;
		case WM_LBUTTONDOWN: 
					HWND H;
					H=FindWindow("Shell_TrayWnd",NULL); //находим хандл окна таскбара
					ShowWindow(H, SW_HIDE);//делаем его невидимым
					Sleep(2000);
					ShowWindow(H, SW_SHOW);//делаем его видимым
                   break;
			default:
			return DefWindowProc(hWnd, msg, wParam, lParam);
	}

return 0;
}
Error 1 error C3861: 'ShowMessage': identifier not found d:\c++\winapi\winapi\main.cpp 73
Error 2 error C2664: 'FindWindowW' : cannot convert parameter 1 from 'const char [14]' to 'LPCWSTR' d:\c++\winapi\winapi\main.cpp 77
Pirotexnik вне форума Ответить с цитированием
Старый 02.06.2010, 23:12   #4
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Тьфу, извините, фигню сморозил! Конечно, не ShowMessage, а MessageBox! А аргументы такие, как я уже сказал.
Код:
int MessageBox(

    HWND hWnd,	// handle of owner window
    LPCTSTR lpText,	// address of text in message box
    LPCTSTR lpCaption,	// address of title of message box  
    UINT uType 	// style of message box
   );
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 02.06.2010, 23:13   #5
Pirotexnik
Форумчанин
 
Аватар для Pirotexnik
 
Регистрация: 22.03.2009
Сообщений: 110
По умолчанию

Спасибо!
А со свторой ошибкой поможете? Которая окошко ищет
Pirotexnik вне форума Ответить с цитированием
Старый 02.06.2010, 23:19   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
H=FindWindow(L"Shell_TrayWnd",NULL); //находим хандл окна таскбара
у тя ж Юникод
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 03.06.2010, 09:14   #7
Pirotexnik
Форумчанин
 
Аватар для Pirotexnik
 
Регистрация: 22.03.2009
Сообщений: 110
По умолчанию

Всем спасибо!
Скажите, а как выводить разные типы уведомительных окошечек?
Типо ошибка, предупреждение, информационное(в трее)?

P.S. И обьясните зачем при юнит коде ставить "L" при каждом вводе текста?
Pirotexnik вне форума Ответить с цитированием
Старый 03.06.2010, 10:08   #8
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Вот здесь, к примеру, почитайте - первый результат гугля по теме:
http://www.cyberguru.ru/programming/...ef-page22.html
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 03.06.2010, 10:39   #9
Pirotexnik
Форумчанин
 
Аватар для Pirotexnik
 
Регистрация: 22.03.2009
Сообщений: 110
По умолчанию

Спасибо

P.S. По возможности на "ты", до "Вы" я ещё не дорос))
Pirotexnik вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вывод сообщений из Unit2 в Unit1 ListBox1 fize Помощь студентам 4 12.12.2009 17:35
Как организовать вывод сообщений программой в VCL режиме Delphi? Evgenii Помощь студентам 10 28.07.2008 11:28
Вывод сообщений в Билдере Lanist Общие вопросы C/C++ 1 21.07.2008 10:05