`
jgsj
  • 浏览: 1028446 次
文章分类
社区版块
存档分类
最新评论

我的vc++问题集3

 
阅读更多

1.如何设置对话框最大时的大小?
当对话框的大小和位置发生变化时,会接收到WM_GETMINMAXINFO消息。用户只要在该消息处理函

数中
设置对话框的大小就可以了。WM_GETMINMAXINFO消息处理函数语法如下:
afx_msg void OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI);
参数说明:
lpMMI:是MINMAXINFO结构指针,该结构记录着对话框最大化,最小化时的大小,用户限制对话框

大小。
其中,ptMaxSize成员用户设置对话框最大化时的高度和宽带;ptMaxPosition成员标识对话框最

大化时的位置。
实例代码:
void CLimitSizeDlg::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI)
{
lpMMI->ptMaxSize.x = 800; //设置对话框最大化时的宽度
lpMMI->ptMaxSize.y = 600; //设置对话框最大化时的高度

lpMMI->ptMaxPosition.x = 50; //设置对话框最大化时左边位置
lpMMI->ptMaxPosition.y = 50; //设置对话框最大化时上访位置
CDialog::OnGetMinMaxInfo(lpMMI);
}
22.关于光盘自动运行:
当光盘中含有"autorun.exe"、"run.ico"和"autorun.inf",其中"autorun.exe"是光盘自动播放

时执行的可执行文件,
"run.ico"是光盘的图标,"autorun.inf"是一个INF文件。只要光盘中含有这三个文件,就会自动

运行。

23.关于AVI文件的播放:
在MFC库中提供了CAnimateCtrl类,用于播放AVI动画,该类的主要方法如下:
Open,Play,Stop,Close等。
注意:CAnimateCtrl类只能播放无声音的AVI文件,如果播放有声音的AVI文件,需要使用微软

ActiveX控件CAnimation

24.如何阻止窗口移动?
要实现不允许拖动窗体的功能,只需要通过主窗口的虚函数PreTranslateMessage(MSG* pMsg)

截获鼠标按下的消息,
将单击标题栏的消息修改成单击非标题栏区域的消息即可。
如下实现代码:
BOOL CBKydctDlg::PreTranslateMessage(MSG* pMsg)
{
if(pMsg->message==WM_NCLBUTTONDOWN)
{
pMsg->message = WM_LBUTTONDOWN;
}
return CDialog::PreTranslateMessage(pMsg);
}

25.WM_NCLBUTTONDOWN和WM_LBUTTONDOWN的区别:
NC是非客户区,包含标题和菜单等

26.如何使窗口始终在最前面?
要实现将自己的程序永远置前可以使用API函数
SetWindowPos(AfxGetMainWnd()->m_hWnd,HWND_TOPMOST,10,10,450,300,SWP_NOMOVE)。

27.如何实现动画显示窗体
要实现动画显示窗体,需要把MoveWindow函数和定时器结合使用,MoveWindow函数可以改变
制定窗口的位置和尺寸,结合定时器以后可以在一定时间内改变窗口的位置和尺寸。
如下为实例程序:
void CDHxsctDlg::OnTimer(UINT nIDEvent)
{
CRect rect,rc;
GetWindowRect(rect);
GetDesktopWindow()->GetWindowRect(rc);
MoveWindow((-m_dx+rc.Width()-rect.Width())/2,
(-m_dy+rc.Height()-rect.Height())/2,
+m_dx+rect.Width(),+m_dy+rect.Height());
if(rect.Height()>=m_height)
{
m_dy=0;
}
if((rect.Width()>=m_width)&&(rect.Height()>=m_height))
{
KillTimer(1);
}
CDialog::OnTimer(nIDEvent);
}

28.如何在视图窗口中创建一个区域?
创建一个视图区域可以通过调用CreateEllipticRgn函数.
下面为实例代码:
CRgn rgn;
HRGN m_hrgn;
m_hrgn = ::CreateEllipticRgn(64,40,186,165);
rgn.Attach(m_hrgn);
CBrush m_brush (1,RGB(100,100,100));
pDC->SelectClipRgn(&rgn,0);
pDC->FillRgn(&rgn,&m_brush);

29.如何实现窗体标题栏的闪烁
要实现窗体标题栏的闪烁,需要使用FlashWindow函数来实现。

30.如何实现拖动没有标题栏的窗体
我们可以截获用户在客户区按下的鼠标左键消息,然后在OnLBtuuonDown消息处理函数中使用

PostMessage函数传送WM_NCLBUTTONDOWN消息,使Windows认为鼠标是在标题栏上。
如下为示例代码:
void CTuodongDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
CDialog::OnLButtonDown(nFlags, point);
PostMessage(WM_NCLBUTTONDOWN,HTCAPTION,MAKELPARAM(point.x,point.y));
}

分享到:
评论

相关推荐

    VC++ windows运行环境合集(VC++2005-VC++2022)

    总的来说,VC++ Windows运行环境合集是解决程序运行依赖问题的有效工具,它使得开发者可以轻松地在各种Windows系统上部署和运行他们的C++程序,尤其是那些基于MFC框架的应用。正确地管理和使用这些运行库,能够保证...

    VC++允许库合集,解决未能加载文件或程序集CefSharp.Core.dll问题

    总之,"VC++允许库合集"是解决C++应用程序依赖问题的关键,而“未能加载文件或程序集CefSharp.Core.dll”通常是由于缺少运行库支持或配置不当所致。通过正确安装和配置VC++运行库,以及检查CefSharp的部署情况,通常...

    计算机问题集vc++ASP

    计算机问题集VC++ ASP是一个资源包,包含了初学者在学习VC++和ASP编程时可能会遇到的问题及解答。这个集合对于那些刚开始接触这两种技术的人来说是非常有价值的,因为它提供了实践中的常见问题和解决方案,帮助他们...

    VC++常用数值算法集

    在编程领域,尤其是在科学计算和工程应用中,...综上所述,"VC++常用数值算法集"涵盖的内容丰富多样,是解决各种数学问题和工程计算的强大工具箱。通过理解和掌握这些算法,开发者能够编写出高效且精确的数值计算程序。

    VC++各版本合集2005-2017

    此外,此版本引入了新的诊断工具,帮助开发者检测并修复性能问题。 **VC++2013**加强了C++14标准的支持,比如通用初始化语法、可变模板参数列表等。同时,它在调试和性能分析方面有所提升,提供更好的用户体验。 *...

    VC++皮肤(合集)

    3. **99273898powerful-skins**:这可能是一个特别强大的皮肤集合,提供多种设计和风格,以满足不同应用场景的需求。 4. **39709571SkinShow**:这个名字可能指的是一个皮肤展示库,它可能包含了一些预设的皮肤样式...

    vc++技巧集

    3. **内存管理**:C++中的动态内存分配和释放是编程中常见的问题,书中可能会讨论如何有效管理内存,防止内存泄漏,并介绍智能指针等工具的使用。 4. **异常处理**:VC++支持C++标准的异常处理机制,书中会讲述如何...

    VC++串口通信经典VC++源码合集

    VC++中的ReadFile和WriteFile函数分别用于接收和发送数据,这两个函数都是异步的,因此在实际应用中可能需要配合GetOverlappedResult或WaitForSingleObject等函数处理同步问题。 在这些源码中,还涉及到数据转换...

    VC++常见问题集—C++学习

    "VC++常见问题集—C++学习"这个资源正好为此目的而设计,它提供了一个关于C++编程的常见问题合集,帮助开发者解决实际编程过程中可能遇到的困扰。 首先,让我们探讨一些C++编程中常见的问题: 1. **编译错误**:...

    VC++运行库合集

    VC++运行库合集

    (VC++2015 合集

    总的来说,VC++2015 Redistributable Package是确保基于VC++2015编译的应用程序正常运行的基础,它提供了必要的运行时环境和库文件,解决了程序依赖问题,并且随着微软的安全更新,确保了系统的安全性。无论是用户...

    微软常用VC++运行库合集 v2018.06.30(32&64;位)最新版

    3. **多线程与网络支持**: VC++运行库提供了多线程和网络编程的支持,使得开发者能够构建高效、安全的多任务和网络应用程序。 **二、32位与64位的区别** - **32位版本**: 适用于32位操作系统,能够处理的最大内存...

    VC++深入详解(完整版)+所有源代码集

    《VC++深入详解(完整版)+所有源代码集》是一份全面探讨Microsoft Visual C++(简称VC++)编程技术的资源包,包含了书籍的详细内容和配套的源代码。这份资料旨在帮助开发者深入理解VC++的各个方面,从基础概念到高级...

    算法VC++程序集3

    顺序存储结构的表、堆栈和队列,链式存储结构的表、堆栈和队列,数组、串和广义表,递归,树和二叉树,图,排序,查找,文件。含有108个完整的程序源代码、可执行文件。

    VC++笔记-问题集

    **VC++笔记-问题集** 本笔记集合涵盖了VC++编程中的关键知识点,特别是关于多线程操作、进程通信以及自定义ActiveX控件制作的深入探讨。这些主题在实际开发中具有广泛的应用,理解并掌握它们对于提升软件工程能力至...

    VC++教学实践实例合集

    这里包含了若干本VC++实例教程及实例,对VC++学习很有帮助,希望大家能够喜欢。由于文件太大,分为五个部分。part5

    算法VC++程序集5

    顺序存储结构的表、堆栈和队列,链式存储结构的表、堆栈和队列,数组、串和广义表,递归,树和二叉树,图,排序,查找,文件。含有108个完整的程序源代码、可执行文件。

    vc++编程指南和VC常见问题集(中文.chm).rar

    《VC++编程指南和VC常见问题集》是一个针对微软Visual C++(简称VC++)开发者的参考资料集合。这个压缩包包含两个.chm文件,分别是"vc++ 编程指南.chm"和"VC常见问题集(中文).chm",它们提供了关于VC++编程的全面...

    归纳整理的VC++串口通信20个经典源码合集.zip

    VC++串口通信20个经典源码合集: .\VC 串口通信程序.rar .\VC 读串口话是动态波形,非常好的应用程序,有源码.rar .\VC++ 串口实现双机互联 包含视窗加代码.rar .\VC++ 串口通信,可以收发数据,可选用TCPIP 通信.rar ....

    VC++图像处理算法合集

    3. **图像处理算法**: - 图像滤波:包括平滑滤波(均值滤波、高斯滤波)和锐化滤波(拉普拉斯滤波、梯度滤波)等,用于去除噪声或突出边缘。 - 轮廓检测:Canny边缘检测、Sobel边缘检测等,用于识别图像中的边界...

Global site tag (gtag.js) - Google Analytics