1// Windows/Control/Window2.h
2
3#ifndef __WINDOWS_CONTROL_WINDOW2_H
4#define __WINDOWS_CONTROL_WINDOW2_H
5
6#include "../Window.h"
7
8namespace NWindows {
9namespace NControl {
10
11class CWindow2: public CWindow
12{
13  LRESULT DefProc(UINT message, WPARAM wParam, LPARAM lParam);
14public:
15  CWindow2(HWND newWindow = NULL): CWindow(newWindow){};
16  virtual ~CWindow2() {};
17
18  bool CreateEx(DWORD exStyle, LPCTSTR className, LPCTSTR windowName,
19      DWORD style, int x, int y, int width, int height,
20      HWND parentWindow, HMENU idOrHMenu, HINSTANCE instance);
21
22  #ifndef _UNICODE
23  bool CreateEx(DWORD exStyle, LPCWSTR className, LPCWSTR windowName,
24      DWORD style, int x, int y, int width, int height,
25      HWND parentWindow, HMENU idOrHMenu, HINSTANCE instance);
26  #endif
27
28  virtual LRESULT OnMessage(UINT message, WPARAM wParam, LPARAM lParam);
29  virtual bool OnCreate(CREATESTRUCT * /* createStruct */) { return true; }
30  // virtual LRESULT OnCommand(WPARAM wParam, LPARAM lParam);
31  virtual bool OnCommand(WPARAM wParam, LPARAM lParam, LRESULT &result);
32  virtual bool OnCommand(int code, int itemID, LPARAM lParam, LRESULT &result);
33  virtual bool OnSize(WPARAM /* wParam */, int /* xSize */, int /* ySize */) { return false; }
34  virtual bool OnNotify(UINT /* controlID */, LPNMHDR /* lParam */, LRESULT & /* result */) { return false; }
35  virtual void OnDestroy() { PostQuitMessage(0); }
36  virtual void OnClose() { Destroy(); }
37  /*
38  virtual LRESULT  OnHelp(LPHELPINFO helpInfo) { OnHelp(); };
39  virtual LRESULT  OnHelp() {};
40  virtual bool OnButtonClicked(int buttonID, HWND buttonHWND);
41  virtual void OnOK() {};
42  virtual void OnCancel() {};
43  */
44
45  LONG_PTR SetMsgResult(LONG_PTR newLongPtr) { return SetLongPtr(DWLP_MSGRESULT, newLongPtr); }
46  LONG_PTR GetMsgResult() const { return GetLongPtr(DWLP_MSGRESULT); }
47};
48
49}}
50
51#endif
52