类似于FlashGet的悬浮框的制作

王朝vc·作者佚名  2006-01-17
窄屏简体版  字體: |||超大  

类似于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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航