一种可用于系统动态显示关于信息的方法
http://tech.ddvip.com 2006年04月02日 社区交流
本文详细介绍一种可用于系统动态显示关于信息的方法
m_pMainWnd->MoveWindow(CRect(0,0,::GetSystemMetrics(SM_CXSCREEN),
::GetSystemMetrics(SM_CYSCREEN)),TRUE);//将窗体移动到屏幕的分辨率大小地方
m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED);//这个就不要解释了
m_pMainWnd->UpdateWindow();
然后修改MainFrame类成员函数去掉工具栏合状态栏就可以了.修改PreCreateWindow(CREATESTRUCT& cs)函数,修改如下:
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
return -1;
FindWindow("Shell_TrayWnd",NULL)->ShowWindow(SW_HIDE);//隐藏任务栏,不隐藏的话,这个东西总是在不适当的时候出现影响整体效果
return 0;
}
上面步骤隐藏了WINDOWS任务栏,所以我们必须在程序退出的时候进行恢复,不要程序结束了也不会见到的.由于程序退出要发送WM_CLOSE消息,所以我们截获MainFrame的WM_CLOSE消息就可以了,在这里恢复状态栏,代码如下:
void CMainFrame::OnClose()
{
// TODO: Add your message handler code here and/or call default
FindWindow("Shell_TrayWnd",NULL)->ShowWindow(SW_SHOW);//恢复任务栏
CFrameWnd::OnClose();
}
到这里,基本准备工作我们已经完成了,下面的任务是贴背景位图和创建显示的对话框.
贴背景位图:装载背景位图,映射VIEW的WM_PAITN消息,然后贴上背景位图,同时映射WM_EARSEBKGND消息,去处屏幕的擦除工作,将返回语句修改成为:return TRUE就可以了.
void CAboutDemoView::OnPaint()
{
// TODO: Add your message handler code here
CPaintDC dc(this); // device context for painting
HBITMAP hbitmap;
hbitmap=::LoadBitmap(::AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BACKBMP));
HDC hMenDC=::CreateCompatibleDC(NULL);
SelectObject(hMenDC,hbitmap);
::StretchBlt(dc.m_hDC,0,0,1024,768,hMenDC,0,0,1024,768,SRCCOPY);
::DeleteDC(hMenDC);
::DeleteObject(hbitmap);
// Do not call CView::OnPaint() for painting messages
}
责编:豆豆技术应用
- VC/VC++按钮设计专题
- VC/VC++ 菜单专题
- VC/VC++ 工具条专题
- VC/VC++ 对话框教程
- VC/VC++ 报表教程
- VC/VC++ 控件
- VC/VC++ GDI
- Visual Studio 2008
- VC/VC++ MFC教程
- VC/VC++ QQ
- VC/VC++ Socket编程
- VC/VC++ 钩子编程
- TangramMini组件应用教程
- VC/VC++ 窗体
- VC/VC++ ADO 教程
- Windows CE 教程
- VC/VC++ DLL(动态链接库)编程
- VC/VC++ PDFlib
- VC与MATLAB编程
- VC/VC++ DirectShow 教程
- VC++入门视频教程
- VC/VC++ COM组件设计与应用
- VC/VC++ ATL
- VC/VC++ WTL
- VC/VC++ 定制调试诊断工具和程序
- VC/VC++ 进程
- VC/VC++ Win32
- VC/VC++ WMI
- VC/VC++ 消息
- 更多VC/VC++专题……