?? groupedit.cpp
字號:
// GroupEdit.cpp : implementation file
//
#include "stdafx.h"
#include "StockRefer.h"
#include "GroupEdit.h"
#include "CategoryBar.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CGroupEdit
CGroupEdit::CGroupEdit()
{
bEscapeKey = FALSE;
iIndex = -1;
msgSend = NM_OB_ONGROUPENDEDIT;
bNoDown = FALSE;
}
CGroupEdit::~CGroupEdit()
{
}
BEGIN_MESSAGE_MAP(CGroupEdit, CEdit)
//{{AFX_MSG_MAP(CGroupEdit)
ON_WM_KILLFOCUS()
ON_WM_CREATE()
ON_WM_CHAR()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CGroupEdit message handlers
BOOL CGroupEdit::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if (pMsg->wParam == VK_RETURN)
{
PostMessage(WM_CLOSE, 0, 0);
return TRUE;
}
else if (pMsg->wParam == VK_ESCAPE)
{
PostMessage(WM_CLOSE, 0, 0);
return bEscapeKey = TRUE;
}
return CEdit::PreTranslateMessage(pMsg);
}
void CGroupEdit::PostNcDestroy()
{
// TODO: Add your specialized code here and/or call the base class
CEdit::PostNcDestroy();
delete this;
}
void CGroupEdit::OnKillFocus(CWnd* /*pNewWnd*/)
{
PostMessage(WM_CLOSE, 0, 0);
if (!bEscapeKey)
{
GetWindowText(text);
if (text != "") GetOwner()->SendMessage(WM_CATEGORY_NOTIFY, msgSend, (LPARAM) this);
}
}
int CGroupEdit::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CEdit::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: Add your specialized creation code here
SendMessage(WM_SETFONT,(WPARAM) GetStockObject(DEFAULT_GUI_FONT),MAKELPARAM(TRUE,0));
return 0;
}
void CGroupEdit::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
if (msgSend == NM_OB_ONGROUPENDEDIT)
{
CEdit::OnChar(nChar, nRepCnt, nFlags);
return;
}
if (nChar == VK_ESCAPE || nChar == VK_RETURN)
{
if (nChar == VK_ESCAPE) bEscapeKey = TRUE;
GetParent()->SetFocus();
return;
}
CEdit::OnChar(nChar, nRepCnt, nFlags);
CString str;
CRect rect, parentrect;
GetClientRect(&rect);
GetParent()->GetClientRect(&parentrect);
ClientToScreen(&rect);
GetParent()->ScreenToClient(&rect);
GetWindowText(str);
CWindowDC dc(this);
CFont *pFont = GetParent()->GetFont();
CFont *pFontDC = dc.SelectObject(pFont);
CRect szrc(rect);
szrc.bottom = szrc.top;
if (bNoDown == TRUE)
{
dc.DrawText(str, szrc, DT_CALCRECT);
if (szrc.right >= parentrect.right - 1) rect.right = parentrect.right - 1;
else rect.right = szrc.right;
MoveWindow(&rect);
return;
}
dc.DrawText(str, szrc, DT_WORDBREAK|DT_CENTER|DT_CALCRECT);
dc.SelectObject(pFontDC);
CSize size = szrc.Size();
if (size.cx > rect.Width())
{
if (size.cx + rect.left < parentrect.right) rect.right = rect.left + size.cx;
else rect.right = parentrect.right;
MoveWindow(&rect);
}
else if (size.cy > rect.Height())
{
if (size.cy + rect.bottom < parentrect.bottom) rect.bottom = rect.top + size.cy;
else rect.bottom = parentrect.bottom;
MoveWindow(&rect);
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -