知识大全 Visual C++设计超强仿QQ自动伸缩窗口[4]

Posted

篇首语:读书也像开矿一样“沙里淘金”本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Visual C++设计超强仿QQ自动伸缩窗口[4]相关的知识,希望对你有一定的参考价值。

Visual C++设计超强仿QQ自动伸缩窗口[4]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

    代码六

void CQQHideWndDlg::DoShow()if(m_hideMode == HM_NONE)return;

CRect tRect;GetWindowRect(tRect);INT height = tRect Height();INT width = tRect Width();

INT steps = ;

switch(m_hideMode)case HM_TOP:steps = height/HS_STEPS;tRect top += steps;if(tRect top >= m_edgeHeight) //你可以把下面一句替换上面的 +=| =steps 达到取消抽屉效果//更好的办法是添加个BOOL值来控制 其他case同样 tRect top = m_edgeHeight;m_hsFinished = TRUE; //完成显示过程tRect bottom = tRect top + height;break;case HM_BOTTOM:steps = height/HS_STEPS;tRect top = steps;if(tRect top <= (GetSystemMetrics(SM_CYSCREEN) height))tRect top = GetSystemMetrics(SM_CYSCREEN) height;m_hsFinished = TRUE;tRect bottom = tRect top + height;break;case HM_LEFT:steps = width/HS_STEPS;tRect right += steps;if(tRect right >= width)tRect right = width;m_hsFinished = TRUE;tRect left = tRect right width;tRect top = m_edgeHeight;tRect bottom = GetSystemMetrics(SM_CYSCREEN) m_taskBarHeight;break;case HM_RIGHT:steps = width/HS_STEPS;tRect left = steps;if(tRect left <= (GetSystemMetrics(SM_CXSCREEN) width))tRect left = GetSystemMetrics(SM_CXSCREEN) width;m_hsFinished = TRUE;tRect right = tRect left + width;tRect top = m_edgeHeight;tRect bottom = GetSystemMetrics(SM_CYSCREEN) m_taskBarHeight;break;default:break;

SetWindowPos(&wndTopMost tRect);

BOOL CQQHideWndDlg::SetWindowPos(const CWnd* pWndInsertAfter

LPCRECT pCRect UINT nFlags)return CDialog::SetWindowPos(pWndInsertAfter pCRect >left pCRect >top pCRect >right pCRect >left pCRect >bottom pCRect >top nFlags);

  到此 程序终于完成了 在我的源代码中还有对WM_SIZING的处理和定义了与之相关的宏 这些主要是控制窗口在调整大小时不能超过最小的宽度和高度 与QQ的自动伸缩无关 所以不在这里提及了

  三 结束语

  虽然还不能算是完美的模仿 但效果已经非常非常的接近了 也许有人会奇怪为什么要用Tool Window风格 这是因为 这样在任务栏中不会显示窗口 从QQ的标题栏高度也可以判断出他也是这种风格 但这样一来就不能拥有最小化 最大化按键了 实际上QQ的最大化 最小化和关闭按键都是用DC画上去的 如何在Caption上增加按键 外国一些开源网站有源代码 我下载并看了一下 发现里面有个知识点很有趣 那就是更改消息路由 有兴趣的可以去下载来学习一下

  QQ的成功很大部分在于他的界面比较人性化(用了MSN后深有感受) 而这些界面实现起来原理也许很简单 难的是观察东西心要细 设计东西心要密 开发东西心要异

cha138/Article/program/net/201311/15312

相关参考

知识大全 Visual C++设计超强仿QQ自动伸缩窗口[2]

VisualC++设计超强仿QQ自动伸缩窗口[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&

知识大全 用Visual C++实现带阴影弹出窗口的技术

用VisualC++实现带阴影弹出窗口的技术  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一.

知识大全 QQ尾巴病毒的Visual C++实现探讨

QQ尾巴病毒的VisualC++实现探讨  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 基于Visual C++ 的自动化客户端的实现

基于VisualC++的自动化客户端的实现  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一概述

知识大全 为什么我QQ发完信息窗口会自动关闭 在哪模式里看不到原先有的那个发送完消息关闭窗口的设置了怎么办

为什么我QQ发完信息窗口会自动关闭在哪模式里看不到原先有的那个发送完消息关闭窗口的设置了怎么办?  以下文字资料是由(本站网www.cha138.com)小编为大家搜集整

知识大全 小米手机qq消息来的时候不会自动弹出窗口,也不会指示灯提醒 不然就是过很久才会提醒

小米手机qq消息来的时候不会自动弹出窗口,也不会指示灯提醒不然就是过很久才会提醒这个一般都是设置消息通知的问题,具体的处理方法如下:1、打开手机,然后进入手机的设置。2、然后选择里面的通知和状态栏。3

知识大全 我的Visual C++入门之路

我的VisualC++入门之路  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!N次失败次成功还学的不

知识大全 Visual C++中OpenGL编程入门

VisualC++中OpenGL编程入门  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Open

知识大全 Visual C++制作一个Sniffer实例

VisualC++制作一个Sniffer实例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!Snif