WTL ˫���崰��
| 65 | |
| 66 | // WTL ˫���崰�� |
| 67 | class CHexControl : |
| 68 | public CBufferedPaintWindowImpl<CHexControl> { |
| 69 | public: |
| 70 | DECLARE_WND_CLASS_EX(L"WTLHexControl",CS_OWNDC|CS_DBLCLKS|CS_HREDRAW|CS_VREDRAW,NULL) |
| 71 | |
| 72 | HWND GetHwnd() const; |
| 73 | void SetBufferManager(IBufferManager* mgr); |
| 74 | IBufferManager* GetBufferManager() const; |
| 75 | void SetReadOnly(bool readonly); |
| 76 | bool IsReadOnly() const; |
| 77 | void SetAllowExtension(bool allow); |
| 78 | bool IsAllowExtension() const; |
| 79 | void SetSize(int64_t size); |
| 80 | bool SetDataSize(int32_t size); |
| 81 | int32_t GetDataSize() const; |
| 82 | bool SetBytesPerLine(int32_t bytesPerLine); |
| 83 | int32_t GetBytesPerLine() const; |
| 84 | bool Copy(int64_t offset = -1, int64_t size = 0); |
| 85 | bool Paste(int64_t offset = -1); |
| 86 | bool CanCopy() const; |
| 87 | bool CanPaste() const; |
| 88 | bool Cut(int64_t offset = -1, int64_t size = 0); |
| 89 | bool Delete(int64_t offset = -1, int64_t size = 0); |
| 90 | bool CanCut() const; |
| 91 | bool CanDelete() const; |
| 92 | int64_t SetBiasOffset(int64_t offset); |
| 93 | int64_t GetBiasOffset() const; |
| 94 | HexControlColors& GetColors(); |
| 95 | std::wstring GetText(int64_t offset, int64_t size); |
| 96 | void Refresh(); |
| 97 | |
| 98 | |
| 99 | BEGIN_MSG_MAP(CHexControl) |
| 100 | MESSAGE_HANDLER(WM_LBUTTONDOWN, OnLeftButtonDown) |
| 101 | MESSAGE_HANDLER(WM_SIZE, OnSize) |
| 102 | MESSAGE_HANDLER(WM_KEYDOWN, OnKeyDown) |
| 103 | MESSAGE_HANDLER(WM_MOUSEMOVE, OnMouseMove) |
| 104 | MESSAGE_HANDLER(WM_LBUTTONUP, OnLeftButtonUp) |
| 105 | MESSAGE_HANDLER(WM_CHAR, OnChar) |
| 106 | MESSAGE_HANDLER(WM_CREATE, OnCreate) |
| 107 | MESSAGE_HANDLER(WM_VSCROLL, OnVScroll) |
| 108 | MESSAGE_HANDLER(WM_HSCROLL, OnHScroll) |
| 109 | MESSAGE_HANDLER(WM_MOUSEWHEEL, OnMouseWheel) |
| 110 | MESSAGE_HANDLER(WM_SETFOCUS, OnSetFocus) |
| 111 | MESSAGE_HANDLER(WM_KILLFOCUS, OnKillFocus) |
| 112 | MESSAGE_HANDLER(WM_GETDLGCODE, OnGetDialogCode) |
| 113 | MESSAGE_HANDLER(WM_CONTEXTMENU, OnContextMenu) |
| 114 | CHAIN_MSG_MAP(CBufferedPaintWindowImpl<CHexControl>) |
| 115 | END_MSG_MAP() |
| 116 | |
| 117 | void DoPaint(CDCHandle dc, RECT& rect); |
| 118 | |
| 119 | private: |
| 120 | LRESULT OnSize(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/); |
| 121 | LRESULT OnCreate(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/); |
| 122 | LRESULT OnHScroll(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/); |
| 123 | LRESULT OnVScroll(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/); |
| 124 | LRESULT OnMouseWheel(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/); |
nothing calls this directly
no outgoing calls
no test coverage detected