📄 editlistctrl.cpp
字号:
/*************************************************
Copyright (C), 2000-2002, Huayue Co., Ltd.
File name: editlistctrl.cpp
Module: 主控模块
Author: 王华东
Version: 1.0
Created on : 2002.11.04
Description: 主控模块界面、单个页面
Global function List:
Modify History:
Date: Author: Modification:
1.
*************************************************/
#include "stdafx.h"
#include "..\nms.h"
#include "EditListCtrl.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CEditListCtrl
CEditListCtrl::CEditListCtrl()
{
bCreate = FALSE;
nItem = -1;
nSubItem = -1;
}
CEditListCtrl::~CEditListCtrl()
{
}
BEGIN_MESSAGE_MAP(CEditListCtrl, CListCtrl)
//{{AFX_MSG_MAP(CEditListCtrl)
ON_NOTIFY_REFLECT(NM_DBLCLK, OnDblclk)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CEditListCtrl message handlers
void CEditListCtrl::OnDblclk(NMHDR* pNMHDR, LRESULT* pResult)
{
LPNMITEMACTIVATE temp = (LPNMITEMACTIVATE) pNMHDR;
CRect rect ;
LVITEM lvItem;
char szItemText[MAX_IP_LEN+1];
/* Get the row number */
nItem = temp->iItem;
/* Get the column number */
nSubItem = temp->iSubItem;
if( (nItem < 0)|| (nSubItem <= 0))
{
return ;
}
/* edit control create? */
if(!bCreate)
{
m_edit.Create(WS_CHILD|ES_AUTOHSCROLL , CRect(0,0,100,100) , this , 1);
m_edit.SetLimitText(50);
bCreate = TRUE;
}
m_edit.ShowWindow(SW_HIDE);
Invalidate();
/* Get Edit SubItem Rect */
GetSubItemRect(nItem , nSubItem , LVIR_BOUNDS , rect);
/* Replace SubItem Rect with edit control */
if(nItem != -1)
{
m_edit.MoveWindow(rect);
}
m_edit.ShowWindow(SW_SHOW);
m_edit.SetFocus();
/* Draw a Rectangle around the SubItem */
::Rectangle(::GetDC(temp->hdr.hwndFrom),rect.left-1,rect.top-2,rect.right+2,rect.bottom+2);
/* Get DBclick Item */
memset(&lvItem, 0, sizeof(LVITEM));
lvItem.mask = LVIF_TEXT;
lvItem.iSubItem = nSubItem;
lvItem.iItem = nItem;
lvItem.pszText = szItemText;
lvItem.cchTextMax = MAX_IP_LEN;
GetItem(&lvItem);
/* Set Edit Control Text To Old Item Text */
m_edit.SetWindowText(lvItem.pszText);
m_edit.SetSel(0 , -1 );
*pResult = 0;
}
BOOL CEditListCtrl::PreTranslateMessage(MSG* pMsg)
{
if(pMsg->message == WM_KEYDOWN)
{
switch((int)pMsg->wParam)
{
case VK_RETURN:
OnEditEnd();
return TRUE;
}
}
return CListCtrl::PreTranslateMessage(pMsg);
}
void CEditListCtrl::OnEditEnd()
{
char szString [51];
LVITEM lvItem;
memset(&lvItem, 0, sizeof(LVITEM));
memset(&szString, 0, sizeof(szString));
if((nItem < 0 )|| (nSubItem < 0))
{
return ;
}
/* Get Edit Text */
m_edit.GetWindowText(szString , sizeof(szString));
/* Change Display Item */
memset(&lvItem, 0, sizeof(LVITEM));
lvItem.mask = LVIF_TEXT;
lvItem.iItem = nItem;
lvItem.pszText = szString;
lvItem.iSubItem = nSubItem;
SetItem(&lvItem);
m_edit.ShowWindow(SW_HIDE);
nSubItem = -1;
nItem = -1;
Invalidate();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -