xref: /MusicPlayer2/MusicPlayer2/EditEx.cpp (revision 6060ad5185b70f10cb5eef3b975ec4a101ff4d89)
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