HiEasyX  Ver 0.3.0
EasyX 全面扩展库
HiEasyX::Window类 参考

窗口 更多...

#include <HiWindow.h>

Public 成员函数

 Window ()
 
 Window (int w, int h, int flag=EW_NORMAL, LPCTSTR lpszWndTitle=L"", WNDPROC WindowProcess=nullptr, HWND hParent=nullptr)
 
virtual ~Window ()
 
HWND InitWindow (int w=640, int h=480, int flag=EW_NORMAL, LPCTSTR lpszWndTitle=L"", WNDPROC WindowProcess=nullptr, HWND hParent=nullptr)
 
HWND Create (int w=640, int h=480, int flag=EW_NORMAL, LPCTSTR lpszWndTitle=L"", WNDPROC WindowProcess=nullptr, HWND hParent=nullptr)
 等价于 InitWindow 更多...
 
void CloseWindow ()
 
void Destroy ()
 等价于 CloseWindow 更多...
 
void SetProcFunc (WNDPROC WindowProcess)
 
HWND GetHandle ()
 
EasyWindow GetInfo ()
 
bool IsAlive ()
 
IMAGE * GetImage ()
 
CanvasGetCanvas ()
 
void BindCanvas (Canvas *pCanvas)
 
void WaitMyTask ()
 
bool SetWorkingWindow ()
 
void SetQuickDraw (UINT nSkipPixels)
 
void Redraw ()
 重绘窗口 更多...
 
void FlushDrawing (RECT rct={ 0 })
 
bool BeginTask ()
 
void EndTask (bool flush=true)
 
bool IsInTask ()
 
bool IsSizeChanged ()
 
void CreateTray (LPCTSTR lpszTrayName)
 
void DeleteTray ()
 
void SetTrayMenu (HMENU hMenu)
 
void SetTrayMenuProcFunc (void(*pFunc)(UINT))
 
void PreSetStyle (long lStyle)
 
void PreSetStyleEx (long lStyleEx)
 
void PreSetPos (int x, int y)
 
void PreSetShowState (int nCmdShow)
 
long GetStyle ()
 
int SetStyle (long lNewStyle)
 
long GetExStyle ()
 
int SetExStyle (long lNewExStyle)
 
POINT GetPos ()
 
SIZE GetWindowSize ()
 获取整个窗口的大小 更多...
 
int GetWindowWidth ()
 获取整个窗口的宽度 更多...
 
int GetWindowHeight ()
 获取整个窗口的高度 更多...
 
int GetClientWidth ()
 获取客户区宽度 更多...
 
int GetClientHeight ()
 获取客户区高度 更多...
 
void Move (int x, int y)
 
void MoveRel (int dx, int dy)
 
void Resize (int w, int h)
 
void SetTitle (LPCTSTR lpszTitle)
 
bool IsForegroundWindow ()
 判断此窗口是否为用户正在使用的窗口 更多...
 
ExMessage Get_Message (BYTE filter=-1)
 
void Get_Message (ExMessage *msg, BYTE filter=-1)
 
bool Peek_Message (ExMessage *msg, BYTE filter=-1, bool removemsg=true)
 
void Flush_Message (BYTE filter=-1)
 

详细描述

窗口

在文件 HiWindow.h118 行定义.

构造及析构函数说明

◆ Window() [1/2]

HiEasyX::Window::Window ( )

在文件 HiWindow.cpp1672 行定义.

1673  {
1674  }

◆ Window() [2/2]

HiEasyX::Window::Window ( int  w,
int  h,
int  flag = EW_NORMAL,
LPCTSTR  lpszWndTitle = L"",
WNDPROC  WindowProcess = nullptr,
HWND  hParent = nullptr 
)

在文件 HiWindow.cpp1676 行定义.

1677  {
1678  InitWindow(w, h, flag, lpszWndTitle, WindowProcess, hParent);
1679  }

◆ ~Window()

HiEasyX::Window::~Window ( )
virtual

在文件 HiWindow.cpp1681 行定义.

1682  {
1683  }

成员函数说明

◆ BeginTask()

bool HiEasyX::Window::BeginTask ( )

在文件 HiWindow.cpp1772 行定义.

1773  {
1774  if (SetWorkingWindow())
1775  {
1776  return HiEasyX::BeginTask();
1777  }
1778  else
1779  {
1780  return false;
1781  }
1782  }

◆ BindCanvas()

void HiEasyX::Window::BindCanvas ( Canvas pCanvas)

在文件 HiWindow.cpp1749 行定义.

1750  {
1751  BindWindowCanvas(pCanvas, g_vecWindows[m_nWindowIndex].hWnd);
1752  }

◆ CloseWindow()

void HiEasyX::Window::CloseWindow ( )

在文件 HiWindow.cpp1709 行定义.

1710  {
1711  closegraph_win32(g_vecWindows[m_nWindowIndex].hWnd);
1712  }

◆ Create()

HWND HiEasyX::Window::Create ( int  w = 640,
int  h = 480,
int  flag = EW_NORMAL,
LPCTSTR  lpszWndTitle = L"",
WNDPROC  WindowProcess = nullptr,
HWND  hParent = nullptr 
)

等价于 InitWindow

在文件 HiWindow.cpp1704 行定义.

1705  {
1706  return InitWindow(w, h, flag, lpszWndTitle, WindowProcess, hParent);
1707  }

◆ CreateTray()

void HiEasyX::Window::CreateTray ( LPCTSTR  lpszTrayName)

在文件 HiWindow.cpp1799 行定义.

1800  {
1801  HiEasyX::CreateTray(lpszTrayName, g_vecWindows[m_nWindowIndex].hWnd);
1802  }

◆ DeleteTray()

void HiEasyX::Window::DeleteTray ( )

在文件 HiWindow.cpp1804 行定义.

1805  {
1806  HiEasyX::DeleteTray(g_vecWindows[m_nWindowIndex].hWnd);
1807  }

◆ Destroy()

void HiEasyX::Window::Destroy ( )

等价于 CloseWindow

在文件 HiWindow.cpp1714 行定义.

1715  {
1716  CloseWindow();
1717  }

◆ EndTask()

void HiEasyX::Window::EndTask ( bool  flush = true)

在文件 HiWindow.cpp1784 行定义.

1785  {
1786  HiEasyX::EndTask(flush);
1787  }

◆ Flush_Message()

void HiEasyX::Window::Flush_Message ( BYTE  filter = -1)

在文件 HiWindow.cpp1943 行定义.

1944  {
1945  flushmessage_win32(filter, g_vecWindows[m_nWindowIndex].hWnd);
1946  }

◆ FlushDrawing()

void HiEasyX::Window::FlushDrawing ( RECT  rct = { 0 })
    更新窗口的双缓冲
 注意:
    必须在窗口任务内调用此函数,详见 hiex::FlushDrawing

在文件 HiWindow.cpp1764 行定义.

1765  {
1766  if (IsInTask())
1767  {
1768  HiEasyX::FlushDrawing(rct);
1769  }
1770  }

◆ Get_Message() [1/2]

ExMessage HiEasyX::Window::Get_Message ( BYTE  filter = -1)

在文件 HiWindow.cpp1928 行定义.

1929  {
1930  return getmessage_win32(filter, g_vecWindows[m_nWindowIndex].hWnd);
1931  }

◆ Get_Message() [2/2]

void HiEasyX::Window::Get_Message ( ExMessage *  msg,
BYTE  filter = -1 
)

在文件 HiWindow.cpp1933 行定义.

1934  {
1935  return getmessage_win32(msg, filter, g_vecWindows[m_nWindowIndex].hWnd);
1936  }

◆ GetCanvas()

Canvas * HiEasyX::Window::GetCanvas ( )

在文件 HiWindow.cpp1744 行定义.

1745  {
1746  return g_vecWindows[m_nWindowIndex].pBufferImgCanvas;
1747  }

◆ GetClientHeight()

int HiEasyX::Window::GetClientHeight ( )

获取客户区高度

在文件 HiWindow.cpp1923 行定义.

1924  {
1925  return g_vecWindows[m_nWindowIndex].pBufferImg->getheight();
1926  }

◆ GetClientWidth()

int HiEasyX::Window::GetClientWidth ( )

获取客户区宽度

在文件 HiWindow.cpp1918 行定义.

1919  {
1920  return g_vecWindows[m_nWindowIndex].pBufferImg->getwidth();
1921  }

◆ GetExStyle()

long HiEasyX::Window::GetExStyle ( )

在文件 HiWindow.cpp1863 行定义.

1864  {
1865  return GetWindowExStyle(g_vecWindows[m_nWindowIndex].hWnd);
1866  }

◆ GetHandle()

HWND HiEasyX::Window::GetHandle ( )

在文件 HiWindow.cpp1724 行定义.

1725  {
1726  return g_vecWindows[m_nWindowIndex].hWnd;
1727  }

◆ GetImage()

IMAGE * HiEasyX::Window::GetImage ( )

在文件 HiWindow.cpp1739 行定义.

1740  {
1741  return g_vecWindows[m_nWindowIndex].pBufferImg;
1742  }

◆ GetInfo()

EasyWindow HiEasyX::Window::GetInfo ( )

在文件 HiWindow.cpp1729 行定义.

1730  {
1731  return g_vecWindows[m_nWindowIndex];
1732  }

◆ GetPos()

POINT HiEasyX::Window::GetPos ( )

在文件 HiWindow.cpp1873 行定义.

1874  {
1875  return GetWindowPos(g_vecWindows[m_nWindowIndex].hWnd);
1876  }

◆ GetStyle()

long HiEasyX::Window::GetStyle ( )

在文件 HiWindow.cpp1853 行定义.

1854  {
1855  return GetWindowStyle(g_vecWindows[m_nWindowIndex].hWnd);
1856  }

◆ GetWindowHeight()

int HiEasyX::Window::GetWindowHeight ( )

获取整个窗口的高度

在文件 HiWindow.cpp1893 行定义.

1894  {
1895  return GetWindowSize().cy;
1896  }

◆ GetWindowSize()

SIZE HiEasyX::Window::GetWindowSize ( )

获取整个窗口的大小

在文件 HiWindow.cpp1878 行定义.

1879  {
1880  return HiEasyX::GetWindowSize(g_vecWindows[m_nWindowIndex].hWnd);
1881  }

◆ GetWindowWidth()

int HiEasyX::Window::GetWindowWidth ( )

获取整个窗口的宽度

在文件 HiWindow.cpp1888 行定义.

1889  {
1890  return GetWindowSize().cx;
1891  }

◆ InitWindow()

HWND HiEasyX::Window::InitWindow ( int  w = 640,
int  h = 480,
int  flag = EW_NORMAL,
LPCTSTR  lpszWndTitle = L"",
WNDPROC  WindowProcess = nullptr,
HWND  hParent = nullptr 
)

在文件 HiWindow.cpp1685 行定义.

1686  {
1687  if (!m_isCreated)
1688  {
1689  // 预设窗口属性
1690  if (m_isPreStyle) PreSetWindowStyle(m_lPreStyle);
1691  if (m_isPreStyleEx) PreSetWindowStyleEx(m_lPreStyleEx);
1692  if (m_isPrePos) PreSetWindowPos(m_pPrePos.x, m_pPrePos.y);
1693  if (m_isPreShowState) PreSetWindowShowState(m_nPreCmdShow);
1694 
1695  HWND hwnd = initgraph_win32(w, h, flag, lpszWndTitle, WindowProcess, hParent);
1696  int index = GetWindowIndex(hwnd);
1697  m_nWindowIndex = index;
1698  m_isCreated = true;
1699  return hwnd;
1700  }
1701  return nullptr;
1702  }

◆ IsAlive()

bool HiEasyX::Window::IsAlive ( )

在文件 HiWindow.cpp1734 行定义.

1735  {
1736  return IsAliveWindow(m_nWindowIndex);
1737  }

◆ IsForegroundWindow()

bool HiEasyX::Window::IsForegroundWindow ( )

判断此窗口是否为用户正在使用的窗口

在文件 HiWindow.cpp1913 行定义.

1914  {
1915  return GetForegroundWindow() == g_vecWindows[m_nWindowIndex].hWnd;
1916  }

◆ IsInTask()

bool HiEasyX::Window::IsInTask ( )

在文件 HiWindow.cpp1789 行定义.

1790  {
1791  return HiEasyX::IsInTask(g_vecWindows[m_nWindowIndex].hWnd);
1792  }

◆ IsSizeChanged()

bool HiEasyX::Window::IsSizeChanged ( )

在文件 HiWindow.cpp1794 行定义.

1795  {
1796  return IsWindowSizeChanged(g_vecWindows[m_nWindowIndex].hWnd);
1797  }

◆ Move()

void HiEasyX::Window::Move ( int  x,
int  y 
)

在文件 HiWindow.cpp1883 行定义.

1884  {
1885  MoveWindow(x, y, g_vecWindows[m_nWindowIndex].hWnd);
1886  }

◆ MoveRel()

void HiEasyX::Window::MoveRel ( int  dx,
int  dy 
)

在文件 HiWindow.cpp1898 行定义.

1899  {
1900  MoveWindowRel(dx, dy, g_vecWindows[m_nWindowIndex].hWnd);
1901  }

◆ Peek_Message()

bool HiEasyX::Window::Peek_Message ( ExMessage *  msg,
BYTE  filter = -1,
bool  removemsg = true 
)

在文件 HiWindow.cpp1938 行定义.

1939  {
1940  return peekmessage_win32(msg, filter, removemsg, g_vecWindows[m_nWindowIndex].hWnd);
1941  }

◆ PreSetPos()

void HiEasyX::Window::PreSetPos ( int  x,
int  y 
)

在文件 HiWindow.cpp1831 行定义.

1832  {
1833  m_isPrePos = true;
1834  m_pPrePos = { x,y };
1835  }

◆ PreSetShowState()

void HiEasyX::Window::PreSetShowState ( int  nCmdShow)

在文件 HiWindow.cpp1837 行定义.

1838  {
1839  m_isPreShowState = true;
1840  m_nPreCmdShow = nCmdShow;
1841  }

◆ PreSetStyle()

void HiEasyX::Window::PreSetStyle ( long  lStyle)

在文件 HiWindow.cpp1819 行定义.

1820  {
1821  m_isPreStyle = true;
1822  m_lPreStyle = lStyle;
1823  }

◆ PreSetStyleEx()

void HiEasyX::Window::PreSetStyleEx ( long  lStyleEx)

在文件 HiWindow.cpp1825 行定义.

1826  {
1827  m_isPreStyleEx = true;
1828  m_lPreStyleEx = lStyleEx;
1829  }

◆ Redraw()

void HiEasyX::Window::Redraw ( )

重绘窗口

在文件 HiWindow.cpp1848 行定义.

1849  {
1850  RedrawWindow(g_vecWindows[m_nWindowIndex].hWnd);
1851  }

◆ Resize()

void HiEasyX::Window::Resize ( int  w,
int  h 
)

在文件 HiWindow.cpp1903 行定义.

1904  {
1905  ResizeWindow(w, h, g_vecWindows[m_nWindowIndex].hWnd);
1906  }

◆ SetExStyle()

int HiEasyX::Window::SetExStyle ( long  lNewExStyle)

在文件 HiWindow.cpp1868 行定义.

1869  {
1870  return SetWindowExStyle(lNewExStyle, g_vecWindows[m_nWindowIndex].hWnd);
1871  }

◆ SetProcFunc()

void HiEasyX::Window::SetProcFunc ( WNDPROC  WindowProcess)

在文件 HiWindow.cpp1719 行定义.

1720  {
1721  SetWndProcFunc(g_vecWindows[m_nWindowIndex].hWnd, WindowProcess);
1722  }

◆ SetQuickDraw()

void HiEasyX::Window::SetQuickDraw ( UINT  nSkipPixels)

在文件 HiWindow.cpp1843 行定义.

1844  {
1845  QuickDraw(nSkipPixels, g_vecWindows[m_nWindowIndex].hWnd);
1846  }

◆ SetStyle()

int HiEasyX::Window::SetStyle ( long  lNewStyle)

在文件 HiWindow.cpp1858 行定义.

1859  {
1860  return SetWindowStyle(lNewStyle, g_vecWindows[m_nWindowIndex].hWnd);
1861  }

◆ SetTitle()

void HiEasyX::Window::SetTitle ( LPCTSTR  lpszTitle)

在文件 HiWindow.cpp1908 行定义.

1909  {
1910  SetWindowTitle(lpszTitle, g_vecWindows[m_nWindowIndex].hWnd);
1911  }

◆ SetTrayMenu()

void HiEasyX::Window::SetTrayMenu ( HMENU  hMenu)

在文件 HiWindow.cpp1809 行定义.

1810  {
1811  HiEasyX::SetTrayMenu(hMenu, g_vecWindows[m_nWindowIndex].hWnd);
1812  }

◆ SetTrayMenuProcFunc()

void HiEasyX::Window::SetTrayMenuProcFunc ( void(*)(UINT)  pFunc)

在文件 HiWindow.cpp1814 行定义.

1815  {
1816  HiEasyX::SetTrayMenuProcFunc(pFunc, g_vecWindows[m_nWindowIndex].hWnd);
1817  }

◆ SetWorkingWindow()

bool HiEasyX::Window::SetWorkingWindow ( )

在文件 HiWindow.cpp1759 行定义.

1760  {
1761  return HiEasyX::SetWorkingWindow(g_vecWindows[m_nWindowIndex].hWnd);
1762  }

◆ WaitMyTask()

void HiEasyX::Window::WaitMyTask ( )

在文件 HiWindow.cpp1754 行定义.

1755  {
1756  WaitForTask(g_vecWindows[m_nWindowIndex].hWnd);
1757  }

该类的文档由以下文件生成:
HiEasyX::Window::GetWindowSize
SIZE GetWindowSize()
获取整个窗口的大小
Definition: HiWindow.cpp:1878
HiEasyX::IsInTask
bool IsInTask(HWND hWnd)
Definition: HiWindow.cpp:555
HiEasyX::ResizeWindow
void ResizeWindow(int w, int h, HWND hWnd)
重设窗口大小
Definition: HiWindow.cpp:880
HiEasyX::GetWindowSize
SIZE GetWindowSize(HWND hWnd)
获取窗口大小
Definition: HiWindow.cpp:859
HiEasyX::EndTask
void EndTask(bool flush)
终止当前窗口任务
Definition: HiWindow.cpp:541
HiEasyX::RedrawWindow
void RedrawWindow(HWND hWnd)
通知重绘绘图窗口(在 WM_PAINT 消息内绘图不需要使用此函数)
Definition: HiWindow.cpp:392
HiEasyX::initgraph_win32
HWND initgraph_win32(int w, int h, int flag, LPCTSTR lpszWndTitle, WNDPROC WindowProcess, HWND hParent)
Definition: HiWindow.cpp:1630
HiEasyX::MoveWindow
void MoveWindow(int x, int y, HWND hWnd)
移动窗口
Definition: HiWindow.cpp:867
HiEasyX::getmessage_win32
ExMessage getmessage_win32(BYTE filter, HWND hWnd)
阻塞等待,直到获取到一个新消息
Definition: HiWindow.cpp:728
HiEasyX::closegraph_win32
void closegraph_win32(int index)
Definition: HiWindow.cpp:202
HiEasyX::SetTrayMenu
void SetTrayMenu(HMENU hMenu, HWND hWnd)
设置托盘菜单(允许在任何时候设置)
Definition: HiWindow.cpp:616
HiEasyX::FlushDrawing
void FlushDrawing(int index, RECT rct={ 0 })
Definition: HiWindow.cpp:429
HiEasyX::GetWindowPos
POINT GetWindowPos(HWND hWnd)
获取窗口位置
Definition: HiWindow.cpp:851
HiEasyX::MoveWindowRel
void MoveWindowRel(int dx, int dy, HWND hWnd)
相对移动窗口
Definition: HiWindow.cpp:873
HiEasyX::Window::IsInTask
bool IsInTask()
Definition: HiWindow.cpp:1789
HiEasyX::BindWindowCanvas
void BindWindowCanvas(Canvas *pCanvas, HWND hWnd)
Definition: HiWindow.cpp:301
HiEasyX::PreSetWindowPos
void PreSetWindowPos(int x, int y)
在创建窗口前设置窗口位置,仅对此操作后首个新窗口生效
Definition: HiWindow.cpp:827
HiEasyX::IsWindowSizeChanged
bool IsWindowSizeChanged(HWND hWnd)
判断某窗口的大小是否改变
Definition: HiWindow.cpp:635
HiEasyX::SetWindowTitle
void SetWindowTitle(LPCTSTR lpszTitle, HWND hWnd)
设置窗口标题文本
Definition: HiWindow.cpp:886
HiEasyX::WaitForTask
void WaitForTask(HWND hWnd)
阻塞等待某窗口任务完成
Definition: HiWindow.cpp:161
HiEasyX::Window::InitWindow
HWND InitWindow(int w=640, int h=480, int flag=EW_NORMAL, LPCTSTR lpszWndTitle=L"", WNDPROC WindowProcess=nullptr, HWND hParent=nullptr)
Definition: HiWindow.cpp:1685
HiEasyX::SetWindowStyle
int SetWindowStyle(long lNewStyle, HWND hWnd)
设置某窗口样式
Definition: HiWindow.cpp:839
HiEasyX::flushmessage_win32
void flushmessage_win32(BYTE filter, HWND hWnd)
清除所有消息记录
Definition: HiWindow.cpp:753
HiEasyX::BeginTask
bool BeginTask()
Definition: HiWindow.cpp:530
HiEasyX::GetWindowIndex
int GetWindowIndex(HWND hWnd)
Definition: HiWindow.cpp:85
HiEasyX::SetWndProcFunc
void SetWndProcFunc(HWND hWnd, WNDPROC WindowProcess)
设置某窗口的过程函数
Definition: HiWindow.cpp:266
HiEasyX::Window::SetWorkingWindow
bool SetWorkingWindow()
Definition: HiWindow.cpp:1759
HiEasyX::SetWorkingWindow
bool SetWorkingWindow(HWND hWnd)
等待当前任务完成并设置活动窗口
Definition: HiWindow.cpp:342
HiEasyX::QuickDraw
void QuickDraw(UINT nSkipPixels, HWND hWnd)
设置加速绘制跳过多少像素点
Definition: HiWindow.cpp:369
HiEasyX::peekmessage_win32
bool peekmessage_win32(ExMessage *msg, BYTE filter, bool removemsg, HWND hWnd)
获取一个消息,立即返回是否获取成功
Definition: HiWindow.cpp:742
HiEasyX::PreSetWindowShowState
void PreSetWindowShowState(int nCmdShow)
在创建窗口前设置窗口显示状态,仅对此操作后首个新窗口生效
Definition: HiWindow.cpp:833
HiEasyX::CreateTray
void CreateTray(LPCTSTR lpszTrayName, HWND hWnd)
Definition: HiWindow.cpp:576
HiEasyX::SetWindowExStyle
int SetWindowExStyle(long lNewExStyle, HWND hWnd)
设置某窗口扩展样式
Definition: HiWindow.cpp:845
HiEasyX::DeleteTray
void DeleteTray(HWND hWnd)
删除某窗口的托盘
Definition: HiWindow.cpp:601
HiEasyX::PreSetWindowStyle
void PreSetWindowStyle(long lStyle)
Definition: HiWindow.cpp:815
HiEasyX::IsAliveWindow
bool IsAliveWindow(HWND hWnd)
判断一窗口是否还存在(未被关闭)
Definition: HiWindow.cpp:111
HiEasyX::SetTrayMenuProcFunc
void SetTrayMenuProcFunc(void(*pFunc)(UINT), HWND hWnd)
设置托盘菜单消息处理函数
Definition: HiWindow.cpp:626
HiEasyX::Window::CloseWindow
void CloseWindow()
Definition: HiWindow.cpp:1709
HiEasyX::g_vecWindows
std::vector< EasyWindow > g_vecWindows
窗口表(管理多窗口)
Definition: HiWindow.cpp:28
HiEasyX::PreSetWindowStyleEx
void PreSetWindowStyleEx(long lStyleEx)
Definition: HiWindow.cpp:821