1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
// Windows/Control/Window2.h
#ifndef __WINDOWS_CONTROL_WINDOW2_H
#define __WINDOWS_CONTROL_WINDOW2_H
#include "Windows/Window.h"
#include "Windows/Defs.h"
#ifndef _WIN32
typedef void * WNDPROC;
typedef void * CREATESTRUCT;
typedef struct
{
HWND hwndFrom;
UINT code;
#define NM_DBLCLK 1
#define LVN_ITEMCHANGED 2
#define LVN_COLUMNCLICK 3
#define CBEN_BEGINEDIT 10
#define CBEN_ENDEDITW 11
} NMHDR;
typedef NMHDR * LPNMHDR;
typedef struct tagNMLISTVIEW
{
NMHDR hdr;
INT iItem;
INT iSubItem;
UINT uNewState;
UINT uOldState;
// UINT uChanged;
// POINT ptAction;
LPARAM lParam;
} NMLISTVIEW, *LPNMLISTVIEW;
typedef void * LPNMITEMACTIVATE;
#define NM_RCLICK 1234 /* FIXME */
// FIXME
#define WM_CREATE 1
#define WM_COMMAND 2
#define WM_NOTIFY 3
#define WM_DESTROY 4
#define WM_CLOSE 5
#define HIWORD(l) ((WORD)((DWORD_PTR)(l) >> 16))
#define LOWORD(l) ((WORD)((DWORD_PTR)(l) & 0xFFFF))
#endif
namespace NWindows {
namespace NControl {
class CWindow2 // : public CWindow
{
// LRESULT DefProc(UINT message, WPARAM wParam, LPARAM lParam);
public:
// CWindow2(HWND newWindow = NULL): CWindow(newWindow){};
CWindow2() {}
virtual ~CWindow2() {}
#ifdef _WIN32
bool CreateEx(DWORD exStyle, LPCTSTR className,
LPCTSTR windowName, DWORD style,
int x, int y, int width, int height,
HWND parentWindow, HMENU idOrHMenu,
HINSTANCE instance);
#ifndef _UNICODE
bool CreateEx(DWORD exStyle, LPCWSTR className,
LPCWSTR windowName, DWORD style,
int x, int y, int width, int height,
HWND parentWindow, HMENU idOrHMenu,
HINSTANCE instance);
#endif
#endif
virtual LRESULT OnMessage(UINT message, WPARAM wParam, LPARAM lParam);
virtual bool OnCreate(CREATESTRUCT * /* createStruct */) { return true; }
// virtual LRESULT OnCommand(WPARAM wParam, LPARAM lParam);
virtual bool OnCommand(WPARAM wParam, LPARAM lParam, LRESULT &result);
virtual bool OnCommand(int code, int itemID, LPARAM lParam, LRESULT &result);
virtual bool OnSize(WPARAM /* wParam */, int /* xSize */, int /* ySize */) { return false; }
virtual bool OnNotify(UINT /* controlID */, LPNMHDR /* lParam */, LRESULT & /* result */) { return false; }
virtual void OnDestroy() { /* FIXME PostQuitMessage(0); */ }
virtual void OnClose() { /* FIXME Destroy(); */ }
/*
virtual LRESULT OnHelp(LPHELPINFO helpInfo) { OnHelp(); };
virtual LRESULT OnHelp() {};
virtual bool OnButtonClicked(int buttonID, HWND buttonHWND);
virtual void OnOK() {};
virtual void OnCancel() {};
*/
#ifdef _WIN32
LONG_PTR SetMsgResult(LONG_PTR newLongPtr )
{ return SetLongPtr(DWLP_MSGRESULT, newLongPtr); }
LONG_PTR GetMsgResult() const
{ return GetLongPtr(DWLP_MSGRESULT); }
#endif
};
}}
#endif
|