34#ifndef VP_WIN32_WINDOW_H
35#define VP_WIN32_WINDOW_H
37#include <visp3/core/vpConfig.h>
39#if (defined(VISP_HAVE_GDI) || defined(VISP_HAVE_D3D9))
41#ifndef DOXYGEN_SHOULD_SKIP_THIS
47# pragma clang diagnostic push
48# pragma clang diagnostic ignored "-Wnonportable-system-include-path"
54#include <visp3/core/vpDisplay.h>
55#include <visp3/core/vpDisplayException.h>
56#include <visp3/gui/vpGDIRenderer.h>
57#include <visp3/gui/vpWin32Renderer.h>
62# pragma clang diagnostic pop
68#define vpWM_GETCLICK WM_USER + 1
69#define vpWM_DISPLAY WM_USER + 2
70#define vpWM_GETCLICKUP WM_USER + 3
71#define vpWM_CLOSEDISPLAY WM_USER + 4
72#define vpWM_GETPOINTERMOTIONEVENT WM_USER + 5
73#define vpWM_DISPLAY_ROI WM_USER + 6
76#define vpNO_BUTTON_QUERY -1
80class VISP_EXPORT vpWin32Window
119 static bool registered;
122 vpWin32Renderer *renderer;
125 VP_EXPLICIT vpWin32Window(vpWin32Renderer *rend =
nullptr);
126 vpWin32Window(
const vpWin32Window &window);
127 virtual ~vpWin32Window();
128 vpWin32Window &operator=(
const vpWin32Window &window);
130 HWND getHWnd() {
return hWnd; }
133 bool isInitialized() {
return initialized; }
136 void initWindow(
const char *title,
int posx,
int posy,
unsigned int w,
unsigned int h);
138 void setScale(
unsigned int scale) { renderer->setScale(scale); }
141 friend class vpDisplayWin32;
142 friend class vpDisplayD3D;
143 friend class vpDisplayGDI;
146 friend LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
Base abstract class for Windows 32 displays. Implements the window creation in a separate thread and ...