类似于FlashGet的悬浮框的制作 -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【www.unjs.com - 电脑资料】

   

    类似于FlashGet的悬浮框的制作

   

    作者:胡峰令

    下载源代码

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

最新文章