2020-12-31 15:35:46 +03:00

37 lines
621 B
C++

#pragma once
#include <windows.h>
#include "WindowsVisitor.h"
//struct WindowsVisitor;
class CWindow_abs
{
public:
virtual void Visit(WindowsVisitor* v) = 0;
virtual ~CWindow_abs() = default;
};
template<class T>
class CWindow_abs_temp : public CWindow_abs
{
public:
CWindow_abs_temp() {}
void Visit(WindowsVisitor* v) override
{
v->Visit(static_cast<T*>(this));
}
};
class CWindow_hwnd
{
private:
public:
HWND hwnd = NULL;
CWindow_hwnd():hwnd(0){}
virtual ~CWindow_hwnd() = default;
void Show() const { ::ShowWindow(this->hwnd, SW_SHOW); }
void Hide() const { ::ShowWindow(this->hwnd, SW_HIDE); }
};