Как создать скрытое окно в C ++

Как создать скрытое окно?

Цель этого окна состоит в том, чтобы получить некоторые сообщения.

36
задан anand 23 January 2010 в 07:38
поделиться

4 ответа

Когда вы создаете окно, опустите флаг WS_VISIBAL и не звоните ShowWindow.

23
ответ дан 27 November 2019 в 06:03
поделиться

Вы звоните CreateWindow () или Createwindowex () Как обычно, но не указывайте WS_Visible стиль окна. Конечно ShowWindow () также не должен быть вызван.

3
ответ дан 27 November 2019 в 06:03
поделиться

В среде Win32 / MFC вам нужно сделать, это создать класс и наследующуюся от CWND, как это:

class HiddenMsgWindow : public CWnd
{
...
}

в конструкторе этого класса вы бы создали бы подобное окно:

HiddenMsgWindow::HiddenMsgWindow()
{
   CString wcn = ::AfxRegisterWndClass(NULL);
   BOOL created = this->CreateEx(0, wcn, _T("YourExcellentWindowClass"), 0, 0, 0, 0, 0, HWND_MESSAGE, 0);
}

Это заставляет вас скрывать Окно с сообщением насос практически готов к роску и рулону.

Остальная часть истории состоит в том, чтобы обеспечить связь между окнами и обработчиками для этих сообщений.

Это делается путем добавления нескольких макросов и обработчика сообщений к вашему файлу реализации (.CPP), как это:

BEGIN_MESSAGE_MAP(HiddenMsgWindow, CWnd)
   ON_MESSAGE(WM_USER + 1, DoNOOP)
END_MESSAGE_MAP()

LRESULT HiddenMsgWindow::DoNOOP(WPARAM wParam, LPARAM lParam)
{
   AfxMessageBox(_T("Get Reaaady for a Ruuummmmmmmbllllle!"));
   return LRESULT(true);
}

, то вам нужно заполнить остальную часть клеевого в файле заголовка:

class HiddenMsgWindow : public CWnd
{
public:
   HiddenMsgWindow();
protected:
   afx_msg LRESULT DoNOOP(WPARAM wParam, LPARAM lParam);

   DECLARE_MESSAGE_MAP()

}

И так же, как магия, у вас есть скрытое окно, готовое накачать ваши сообщения.

Для того, чтобы использовать это окно сообщению, вы бы создали бы класс, извлеките его ручку и отправлять или отправлять сообщения по желанию. Так же, как это:

HiddenMsgWindow *hmw = new HiddenMsgWindow();
SendMessage(hmw->m_hWnd, WM_USER + 1, 0, 0);
14
ответ дан 27 November 2019 в 06:03
поделиться

Здесь вы можете следовать инструкциям: https://docs.microsoft.com/en-us/windows/desktop/winmsg/window-features#message-only-windows

10
ответ дан 27 November 2019 в 06:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: