当前位置: 首页 > 图文教程 > 开发语言 > VC++ > 类似于FlashGet的悬浮框的制作

VC++
如何隐藏显示在任务栏中的对话框程序
一个效果很好的outlookbar控件CXTOutBarCtrl
如何在对话框程序中使用动画控件
形态各异的不规则窗体
支持换肤功能的窗口实例
如何给基于对话框的应用加启动画面
Convert CHtmlView to CHtmlCtrl(View与Frame的分离)
《Windows 程序设计》学习笔记(四)
如何模拟《WORD》的窗口形式
如何按非客户区移动窗体
仿制金山毒霸专杀工具界面
在对话框程序中插入DialogBar
接触VC之三:MFC基于对话框程序
无标题栏对话框的拖动
MFC框架程序中全屏显示特性的实现
给你的应用程序添加动态鼠标
在MFC程序中添加全屏显示功能
制作类似网络蚂蚁的拉帘式Tab
如何有效的使用对话框之二
IE控制条的实现

VC++ 中的 类似于FlashGet的悬浮框的制作


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 95 ::
收藏到网摘: n/a

类似于FlashGet的悬浮框的制作

作者:胡峰令

下载源代码

  最近再制作一个工具软件时,想做一个象FlashGet里那种悬浮框,经过一个晚上的尝试,以及网上的资料的帮助,解决了该问题,现在将其过程与大家分享一下。
  这种悬浮框要求的就是一个置顶的窗口,本来想自己写个窗口,后来发现不如直接用对话框来得直接方便。
1、新建一个对话框,添加类CSplashDlg,注意要设置其Extended Styles2为工具窗口
2、在CMainFrame::OnCreate()中添加

dlg = new CSplashDlg(); dlg->Create(IDD_DIALOG1,NULL); CRect rect; dlg->GetWindowRect(&rect); //设置置顶窗口 dlg->SetWindowPos(&wndTopMost,rect.left,rect.bottom,rect.Width(),rect.Height(),SWP_SHOWWINDOW); dlg->MoveWindow(20,10,rect.Width(),rect.Height(),TRUE); dlg->ShowWindow(SW_SHOW); //显示对话框 dlg->UpdateWindow(); 
3、关键一点在于将对话框客户去消息转换成客户区消息
void CSplashDlg::OnLButtonDown(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default CDialog::OnLButtonDown(nFlags, point); PostMessage (WM_NCLBUTTONDOWN , HTCAPTION , MAKELPARAM(point.x , point. y ));}
4、最后不要忘了释放释放资源
void CMainFrame::OnClose() { // TODO: Add your message handler code here and/or call default dlg->DestroyWindow(); //销毁对话框 CFrameWnd::OnClose();}
第一次写文章,请大家多多指教,[email protected]