类似于FlashGet的悬浮框的制作

豆豆网   技术应用频道   2006年07月19日  【字号: 收藏本文

本文详细介绍类似于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

作者:胡峰令    责编:豆豆技术应用

正在加载评论...