LunaHook-mirror/LunaHost/GUI/window.h
恍兮惚兮 668e701d6a font
2024-04-25 15:44:28 +08:00

37 lines
993 B
C++

#ifndef LUNA_BASE_WINDOW_H
#define LUNA_BASE_WINDOW_H
class control;
class basewindow{
public:
HWND winId;
virtual void setgeo(int,int,int,int);
virtual void on_size(int w,int h);
RECT getgeo();
std::wstring text();
void settext(const std::wstring&);
operator HWND(){return winId;}
};
class mainwindow:public basewindow{
HFONT hfont=0;
public:
void setfont(int,LPCWSTR fn=0);
void visfont();
std::vector<control*>controls;
std::vector<mainwindow*>childrens;
mainwindow* parent;
HWND lastcontexthwnd;
control* layout;
virtual void on_show();
virtual void on_close();
void on_size(int w,int h);
mainwindow(mainwindow* _parent=0);
LRESULT wndproc(UINT message, WPARAM wParam, LPARAM lParam);
static void run();
void show();
void close();
void setcentral(int,int);
std::pair<int,int>calculateXY(int w,int h);
void setlayout(control*);
};
HICON GetExeIcon(const std::wstring& filePath);
#endif