您的位置:逆风者 VC++ 正文
 添加时间:2007-09-01 原文发表:2007-08-31 人气:77 来源:vckbase.com

类似于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();

}

第一次写文章,请大家多多指教,hflaa123@yahoo.com.cn
 

相关文章

毫秒定时器
C :使用 Visual C 2005 的现代语言特色
IP Messenger 详细分析
可设置单元格颜色的ClistCtrl类
利用VC++开发ASP图像处理组件(二)
从 ADO 迁移到 ADO.NET(一)
获得 Win32 窗口句柄的更好的方法
关于 IDispatch 接口的 LPDispatch 属性的实
用ATL开发复合控件
后缀表达式求值及校验
不重起Windows直接更改IP地址
MFC程序员的WTL指南: 中文版序言
COM 组件设计与应用(五)——用 ATL 写第一
编写多文档应用程序
PhotoShop插件开发之选区(Selection)
VC初学者入门系列之二:消息循环
定制调试诊断工具和实用程序——摆脱DLL“地
WMI 的一个实现
自绘按钮的实现
《系统飞狐》系列软件中的“系统监视器”开

相关评论


本文章所属分类:首页 VC++

  热门关键字: