一种可用于系统动态显示关于信息的方法

2016-02-19 17:39 4 1 收藏

下面是个超简单的一种可用于系统动态显示关于信息的方法教程,图老师小编精心挑选推荐,大家行行好,多给几个赞吧,小编吐血跪求~

【 tulaoshi.com - 编程语言 】

  介绍

  一般的系统帮助文件在显示关于帮助信息的时候大部分采用的方法是静态的形式将要显示的内容显示到界面上,由于这次担任项目开发,我总觉得那样太单调了,于是,在各个网站搜索后发现了一个很好的控件类(字模显示控件类),于是我进行扩充完成了一些动态显示的功能,完成后的各种要显示的帮助信息能够象放映电影一样的进行动态显示,效果蛮好的,现将制作过程合代码及演示效果写出来,希望对这个方面有研究或者寻求好方法的人有帮助.

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

  同时本文章代码中显示的文本信息各位可以根据需要进行自己修改.

  正文

  显示帮助文件的时候我采用的是全屏的显示方法,但是如果就VIEW全屏的方法的话我总觉得太难看了,于是我首先在全屏的基础上贴上一个背景图片,然后在背景图片上加载一个功能显示就可以了.其实简单的方法是在背景图片上直接动态创建一个CSTATIC控件就可以了,不过由于我的系统涉及到别的许多功能界面要处理,所以我用了一个对话框的形式,采用无模式对话框形式,然后将她创建完成后MOVEWINDOW到指定位置就可以了.

  制作步骤:

  启动VC,建立一个基于CVIEW的单文档功能,其余保持默认设置就可以了.

  全屏的概念我没有象传统的那样进行,而是将主框架MoveWindow到屏幕的分辨率大小,然后去掉标题兰,菜单栏,工具栏,状态栏等显示就差不多一个全屏的效果了,然后在这个上面贴上背景图片就可以了.也许这个根本不能算全屏的概念(^_^).具体实现步骤如下:

  修改APP的InitInstance()函数,修改的地方如下:

  // The one and only window has been initialized, so show and update it.

  m_pMainWnd-SetMenu(NULL);//去掉菜单

  m_pMainWnd-ModifyStyle(WS_THICKFRAME|WS_CAPTION,NULL);//修改窗体属性

  m_pMainWnd-MoveWindow(CRect(0,0,::GetSystemMetrics(SM_CXSCREEN),

  ::GetSystemMetrics(SM_CYSCREEN)),TRUE);//将窗体移动到屏幕的分辨率大小地方

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

  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
}

  建立一个用于显示相关信息的对话框资源,修改对话框属性,Style-Popup,Border-None;并建立对话框类CShowAboutDlg;然后在对话框上面放置一个CSTATIC控件,并调整位置.

  在VIEW中创建这个无模式的对话框然后显示:

  CShowAboutDlg *m_pAboutDlg;

  CRect rect;

  m_pAboutDlg = new CShowAboutDlg();

  m_pAboutDlg-Create(IDD_ABOUT);

  m_pAboutDlg-MoveWindow(CRect(18,18,::GetSystemMetrics(SM_CXSCREEN)-13,::GetSystemMetrics(SM_CYSCREEN)-16),TRUE); //因为背景图片有一个边框,所以这里应该吧那个位置留出来

  m_pAboutDlg-GetClientRect(&rect);

  m_pAboutDlg-m_AboutCtrl.MoveWindow(rect,TRUE);//是这个PIC控件占满对话框客户区域

  m_pAboutDlg-ShowWindow(SW_SHOW);

  下面就是加入字模显示控件类的文件了.将ZgMemDC ,ZgDraw.h,ZgDraw.cpp,TitleShow.h,TitleShow.cpp,PublicClass.cpp,PublicClass.h加入工程,然后加入AutoFont.h和AutoFont.cpp,这个类功能不用说了,在上篇文章中我已经介绍了.在那位提供字模显示控件类的基础上,我修改了其中的适量代码,进行了文字显示方面的修改,因为那个原来的类的字体不适合我们现在系统显示的要求(^_^).

  然后就是在对话框类中加载显示消息就可以了.

  定义显示CSTATIC类对象位TitleShow,然后在初始化里面添加你的信息显示内容:

  ****

  其中还有一步就是截获回车和ESC键对对话框的退出工作.

  

BOOL CShowAboutDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if(pMsg-message == WM_KEYDOWN)
{
switch(pMsg-wParam)
{
case VK_RETURN:
return TRUE;
case VK_ESCAPE:
return TRUE;
}
}
return CDialog::PreTranslateMessage(pMsg);
}

  至此,程序基本工作已经完成了,编译运行你的工程看看效果吧.

来源:https://www.tulaoshi.com/n/20160219/1615769.html

延伸阅读
tuLaoShi.com安全期避孕你真的了解吗 自然避孕法包括安全期避孕法和哺乳闭经避孕法。自然避孕法不干扰身体的生理功能,也无副作用,不宜采用其他避孕方法的妇女或处于特殊生理阶段的妇女多乐意选用。由于对哺乳期妇女的恢复排卵很难测定,故哺乳闭经避孕法基本上已不使用,产后不管是否来月经,都应采取避孕措施。 自从1827年在哺乳动物体内...
标签: 太极拳 养生 健康
TuLaoShi.com 太极是一种身心合一的锻炼方法 太极是一种身心合一的传统锻炼方法,在中国用于预防和治疗疾病已经有上千年的历史了。我国《黄帝内经·素问》中就提出:其病多痿厥寒热,其治宜导引。汉代名医华佗创编了五禽戏作为健康运动,他的理论是:人身常动摇则谷气消,血脉通,病不生,不犹户枢不朽是也。太极拳是其中最常见的一种运...
标签: 分娩
准妈妈听的音乐应该以轻柔的为主,但是,完全可以有更多元化的选择。因为,不同的旋律、不同的节奏带给胎宝宝的感受和影响是不一样的。就让你的小宝宝接触多元的艺术,熟悉不同的演奏形式,欣赏不同的艺术曲风,在音乐的海洋中汲取营养,激发艺术潜能吧! 1,普罗科菲耶夫时《彼得与狼》——学会勇敢。 2,德沃夏...
win7系统禁止显示用户登录信息的设置方法   win7系统功能强大,有着xp系统不可比拟的其他功能,不过有些功能虽然强大,但为了保障系统安全信息,最好还是禁用掉为好。比如当用户登录系统桌面时,可以查看上次具体登录情况,包括时间和使用账号。虽然此功能可以方便查看上次登录的具体信息,但为了防止信息泄露,保障系统安全信息,我...
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click             Dim G As Graphics           G = PictureBox1.CreateGraphics() ...

经验教程

332

收藏

67
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部