38 lines
691 B
C++
38 lines
691 B
C++
//
|
|
// CWnd.h
|
|
//
|
|
|
|
#pragma once
|
|
|
|
class CWnd
|
|
{
|
|
public:
|
|
CWnd();
|
|
|
|
void Release();
|
|
BOOL Attach(HWND hwnd);
|
|
|
|
static CWnd* FromHandle(HWND hwnd);
|
|
|
|
public:
|
|
HWND m_hWnd;
|
|
|
|
protected:
|
|
// This is what subclasses implement
|
|
virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam) PURE;
|
|
|
|
// Subclasses call CWnd::Default to forward the message to the original wndproc
|
|
LRESULT Default(UINT message, WPARAM wParam, LPARAM lParam);
|
|
|
|
virtual ~CWnd();
|
|
|
|
private:
|
|
static LRESULT CALLBACK StaticWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam);
|
|
void OnNCDESTROY();
|
|
|
|
private:
|
|
WNDPROC m_pfnPrevWindowProc;
|
|
UINT m_cRef;
|
|
};
|
|
|