1 // EditEx.cpp : 实现文件
2 //
3
4 #include "stdafx.h"
5 #include "MusicPlayer2.h"
6 #include "EditEx.h"
7
8
9 // CEditEx
10
IMPLEMENT_DYNAMIC(CEditEx,CEdit)11 IMPLEMENT_DYNAMIC(CEditEx, CEdit)
12
13 CEditEx::CEditEx()
14 {
15
16 }
17
~CEditEx()18 CEditEx::~CEditEx()
19 {
20 }
21
22
ResetModified()23 void CEditEx::ResetModified()
24 {
25 SetModify(FALSE);
26 Invalidate(FALSE);
27 }
28
GetText() const29 CString CEditEx::GetText() const
30 {
31 CString str;
32 GetWindowText(str);
33 return str;
34 }
35
SetColorWhenModified(bool val)36 void CEditEx::SetColorWhenModified(bool val)
37 {
38 m_show_color_when_modified = val;
39 }
40
BEGIN_MESSAGE_MAP(CEditEx,CEdit)41 BEGIN_MESSAGE_MAP(CEditEx, CEdit)
42 ON_WM_CTLCOLOR_REFLECT()
43 ON_MESSAGE(WM_TABLET_QUERYSYSTEMGESTURESTATUS, &CEditEx::OnTabletQuerysystemgesturestatus)
44 END_MESSAGE_MAP()
45
46
47
48 // CEditEx 消息处理程序
49
50
51
52
53 BOOL CEditEx::PreTranslateMessage(MSG* pMsg)
54 {
55 // TODO: 在此添加专用代码和/或调用基类
56 //按Ctrl+A全选
57 if ((GetKeyState(VK_CONTROL) & 0x80) && (pMsg->wParam == 'A'))
58 {
59 SetSel(0, -1);
60 return TRUE;
61 }
62 return CEdit::PreTranslateMessage(pMsg);
63 }
64
65
CtlColor(CDC * pDC,UINT nCtlColor)66 HBRUSH CEditEx::CtlColor(CDC* pDC, UINT nCtlColor)
67 {
68 // TODO: 在此更改 DC 的任何特性
69
70 DWORD style = GetStyle();
71 bool is_read_only = ((style & ES_READONLY) != 0);
72 if (m_show_color_when_modified && GetModify() && !is_read_only)
73 pDC->SetTextColor(theApp.m_app_setting_data.theme_color.dark1); //如果文本已修改,则显示为主题色
74
75 // TODO: 如果不应调用父级的处理程序,则返回非 null 画笔
76 static HBRUSH hBackBrush{ CreateSolidBrush(GetSysColor(COLOR_WINDOW)) };
77 return (is_read_only ? NULL : hBackBrush);
78 }
79
80
OnTabletQuerysystemgesturestatus(WPARAM wParam,LPARAM lParam)81 afx_msg LRESULT CEditEx::OnTabletQuerysystemgesturestatus(WPARAM wParam, LPARAM lParam)
82 {
83 return 0;
84 }
85