资源简介
使用MFC制作的仿QQ的抽屉效果,很简单,希望能帮到大家
代码片段和文件信息
// Copyright (c) Iuri Apollonio 1998
// Use & modify as you want & need and leave those 4 lines.
// Strongly based on article “Inplace edit control“ of Mario Contestabile and “Editable subitems“ of Zafir
// http://www.codeguru.com
// GfxGroupEdit.cpp : implementation file
//
#include “stdafx.h“
//#include “micq.h“
#include “GfxGroupEdit.h“
#include “GfxOutBarCtrl.h“
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CGfxGroupEdit
CGfxGroupEdit::CGfxGroupEdit()
{
bEscapeKey = FALSE;
iIndex = -1;
msgSend = NM_OB_ONGROUPENDEDIT;
bNoDown = false;
}
CGfxGroupEdit::~CGfxGroupEdit()
{
}
BEGIN_MESSAGE_MAP(CGfxGroupEdit CEdit)
//{{AFX_MSG_MAP(CGfxGroupEdit)
ON_WM_KILLFOCUS()
ON_WM_CREATE()
ON_WM_CHAR()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CGfxGroupEdit message handlers
void CGfxGroupEdit::OnKillFocus(CWnd* pNewWnd)
{
PostMessage(WM_CLOSE 0 0);
if (!bEscapeKey)
{
GetWindowText(text);
if (text != ““) GetOwner()->SendMessage(WM_OUTBAR_NOTIFY msgSend (LPARAM) this);
}
}
BOOL CGfxGroupEdit::PreTranslateMessage(MSG* pMsg)
{
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 CGfxGroupEdit::PostNcDestroy()
{
CEdit::PostNcDestroy();
delete this;
}
int CGfxGroupEdit::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CEdit::OnCreate(lpCreateStruct) == -1)
return -1;
SendMessage(WM_SETFONT(WPARAM) GetStockobject(DEFAULT_GUI_FONT)MAKELPARAM(TRUE0));
return 0;
}
void CGfxGroupEdit::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.
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2004-06-30 10:15 实例15 实现QQ程序的抽屉效果\
目录 0 2011-05-31 20:47 实例15 实现QQ程序的抽屉效果\MQQAppearance\
目录 0 2011-05-31 20:35 实例15 实现QQ程序的抽屉效果\MQQAppearance\Debug\
文件 28724 2011-05-31 20:35 实例15 实现QQ程序的抽屉效果\MQQAppearance\Debug\GfxGroupEdit.obj
文件 159845 2011-05-31 20:35 实例15 实现QQ程序的抽屉效果\MQQAppearance\Debug\GfxOutBarCtrl.obj
文件 49308 2011-05-31 20:35 实例15 实现QQ程序的抽屉效果\MQQAppearance\Debug\GfxPopupMenu.obj
文件 188539 2011-05-31 20:35 实例15 实现QQ程序的抽屉效果\MQQAppearance\Debug\MQQAppearance.exe
文件 445508 2011-05-31 20:35 实例15 实现QQ程序的抽屉效果\MQQAppearance\Debug\MQQAppearance.ilk
文件 25010 2011-05-31 20:35 实例15 实现QQ程序的抽屉效果\MQQAppearance\Debug\MQQAppearance.obj
文件 5136384 2011-05-31 20:35 实例15 实现QQ程序的抽屉效果\MQQAppearance\Debug\MQQAppearance.pch
文件 623616 2011-05-31 20:35 实例15 实现QQ程序的抽屉效果\MQQAppearance\Debug\MQQAppearance.pdb
文件 14836 2011-05-31 19:57 实例15 实现QQ程序的抽屉效果\MQQAppearance\Debug\MQQAppearance.res
文件 39932 2011-05-31 20:35 实例15 实现QQ程序的抽屉效果\MQQAppearance\Debug\MQQAppearanceDlg.obj
文件 106047 2011-05-31 19:57 实例15 实现QQ程序的抽屉效果\MQQAppearance\Debug\StdAfx.obj
文件 214016 2011-05-31 20:36 实例15 实现QQ程序的抽屉效果\MQQAppearance\Debug\vc60.idb
文件 372736 2011-05-31 20:35 实例15 实现QQ程序的抽屉效果\MQQAppearance\Debug\vc60.pdb
文件 3301 2001-02-24 08:05 实例15 实现QQ程序的抽屉效果\MQQAppearance\GfxGroupEdit.cpp
文件 1699 1998-07-06 04:06 实例15 实现QQ程序的抽屉效果\MQQAppearance\GfxGroupEdit.h
文件 55365 2001-02-25 02:10 实例15 实现QQ程序的抽屉效果\MQQAppearance\GfxOutBarCtrl.cpp
文件 7416 1998-07-21 08:31 实例15 实现QQ程序的抽屉效果\MQQAppearance\GfxOutBarCtrl.h
文件 15288 2001-02-24 08:07 实例15 实现QQ程序的抽屉效果\MQQAppearance\GfxPopupMenu.cpp
文件 1750 1998-07-04 06:28 实例15 实现QQ程序的抽屉效果\MQQAppearance\GfxPopupMenu.h
文件 34264 2002-06-05 08:16 实例15 实现QQ程序的抽屉效果\MQQAppearance\MQQAppearance.aps
文件 1043 2002-06-05 08:00 实例15 实现QQ程序的抽屉效果\MQQAppearance\MQQAppearance.clw
文件 2161 2002-04-28 06:30 实例15 实现QQ程序的抽屉效果\MQQAppearance\MQQAppearance.cpp
文件 5028 2011-05-31 20:47 实例15 实现QQ程序的抽屉效果\MQQAppearance\MQQAppearance.dsp
文件 551 2002-04-28 06:30 实例15 实现QQ程序的抽屉效果\MQQAppearance\MQQAppearance.dsw
文件 1401 2002-04-28 06:30 实例15 实现QQ程序的抽屉效果\MQQAppearance\MQQAppearance.h
文件 148480 2011-05-31 20:47 实例15 实现QQ程序的抽屉效果\MQQAppearance\MQQAppearance.ncb
文件 74752 2011-05-31 20:47 实例15 实现QQ程序的抽屉效果\MQQAppearance\MQQAppearance.opt
文件 1770 2011-05-31 20:35 实例15 实现QQ程序的抽屉效果\MQQAppearance\MQQAppearance.plg
............此处省略15个文件信息
相关资源
- mfc 调用redis
- MFC视频播放器源码(支持avi/wma/mp3等格
- mfc绘图大全(画直线、矩形、椭圆)
- MFC控件重绘
- hook,捕获所有案件,查找所有窗口,
- (学习)VS2010之MFC入门到精通教程
- MFC文档_视图_框架_模板结构体系深入
- 简单员工管理系统(适合初学MFC)
- MFC五子棋游戏
- MFC UDP编程
- MFC的异步网络通讯应用程序
- C++MFC模块讲解,黑发程序员课程整理
- 一个简单而强大的基于MFC的web server源
- 基于MFC的VC++仿QQ浏览器源码(雏形)
- MFCaccess.rar
- VC++MFC课程设计的学生成绩管理系统
- MFC 日历控件 万年历 Calendar自绘
- CrystalDiskInfo-HDD/SSD硬盘信息,SMART信息
- MFC自定义界面HUI,高效简单,含详细
- 仿射密码-Affine cipher
- c++MFC车牌自动识别定位,只能定位和
- mfc+sql 酒店客房管理系统
- 基于图割的图像分割OpenCV+MFC实现
- MFC绘制Bezier曲线B样条曲线曲线拟合
- MFC坦克大战
- VC++ 中国象棋经典游戏源代码
- 课程设计: MFC 学生信息管理系统
- MFC对ACCESS数据库的增加、删除、查找
- vc.6.0 MFC 人事管理系统源码
- MFC 在线考试系统
评论
共有 条评论