类似于FlashGet的悬浮框的制作

翻译|其它|编辑:郝浩|2006-02-23 16:29:00.000|阅读 1217 次

概述:

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>



下载源代码

  最近再制作一个工具软件时,想做一个象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();
}


 


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP