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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.06.2011, 06:48   #1
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию Заставить консоль принимать сообщения?

На делфи это можно сделать, используя AllocateHWnd. Но к сожалению, msdn ничего на эту фразу не выдал =\
TwiX вне форума Ответить с цитированием
Старый 20.06.2011, 10:00   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

создайте сами оконный класс, зарегистрируйте, создайте окно этого класса и принимайте.
AllocateHWnd в Делфи делает тоже самое.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 20.06.2011, 11:43   #3
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Цитата:
Сообщение от TwiX Посмотреть сообщение
На делфи это можно сделать, используя AllocateHWnd. Но к сожалению, msdn ничего на эту фразу не выдал =\
Создайте пустое невидимое окно ручками. Подозреваю, что в делфях оно примерно так же и реализовано.
pu4koff вне форума Ответить с цитированием
Старый 20.06.2011, 22:05   #4
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

Чего-то не хочет создавать окно
Код:
HWND w;
	w=CreateWindowEx(WS_EX_TOOLWINDOW, L"DTwiX_Reciever", 0, WS_POPUP, 0, 0, 0, 0, 0, 0, GetModuleHandle(0), 0);
WS_EX_TOOLWINDOW и WS_POPUP списал с AllocateWnd. GetModuleHandle получает hInstace нашего приложения.
После этого w равно 0;
А GetLastError равно 1992094102 оО
TwiX вне форума Ответить с цитированием
Старый 20.06.2011, 22:16   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а вы зарегистрировали этот оконный класс?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 20.06.2011, 22:44   #6
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

Если это делается вот так:
Код:
           WNDCLASS MyWnd;
	MyWnd.hInstance=GetModuleHandle(0);
	MyWnd.lpfnWndProc=MyWndProc;
	MyWnd.lpszClassName=L"DTwiX_Reciever";
	RegisterClass(&MyWnd);
то да)
TwiX вне форума Ответить с цитированием
Старый 20.06.2011, 22:53   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а кто RegistetClass будет проверять на успех?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 20.06.2011, 23:34   #8
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

RegisterClass возвращает 0, т.е. неудача. GetLastError говорит, что всё нормально (0 возвращает). Пробовал вводить другое имя - тот же самый результат.
TwiX вне форума Ответить с цитированием
Старый 20.06.2011, 23:44   #9
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

попробуй заполнить все поля структуры, или хоть очисти её.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 21.06.2011, 00:05   #10
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

Та же ситуация:
Код:
	WNDCLASS MyWnd;

	memset(&MyWnd, 0, sizeof(WNDCLASS));

    MyWnd.hIcon=LoadIcon(NULL,IDI_QUESTION);
    MyWnd.hCursor=LoadCursor(NULL,IDC_ARROW);
    MyWnd.lpszMenuName=NULL;
    MyWnd.hbrBackground=(HBRUSH)(COLOR_WINDOW+1);
    MyWnd.cbClsExtra=MyWnd.cbWndExtra=MyWnd.style=0;

	MyWnd.hInstance=GetModuleHandle(0);
	MyWnd.lpfnWndProc=MyWndProc;
	MyWnd.lpszClassName=L"DTwiX_Reciever";
	cout << "Class: " << (int)(RegisterClass(&MyWnd)==0) << "___"<< (int)GetLastError() << endl;
Class: 0___0
TwiX вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как заставить консоль не закрываться после выполнения программы starikovmax Общие вопросы C/C++ 4 23.02.2010 16:59
IRC подключиться, отправлять, принимать сообщения. ZBEP Работа с сетью в Delphi 1 18.01.2010 14:17
SendMessage - какие значения может принимать второй параметр? TwiX Win Api 1 29.07.2009 03:39
Как принимать сигналы с ИК передатчика Вырвиглаз Компьютерное железо 7 29.03.2009 23:16
Консоль MAcK Общие вопросы Delphi 4 19.12.2007 19:05