网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > VC++ > 正文
巧用Visual C++编程来实现全屏幕显示功能
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/15
下载{$ArticleTitle}原创论文样式

  文/刘涛

  前言:

  在Visual C++编程中,有时需要采用尽量大的区域来作为显示区域,那么实现程序的全屏幕显示就不失为一种很好的选择了,所谓全屏幕显示,就是程序界面上没有菜单条、工具条等附加项,整个显示屏幕作为一个显示窗口来显示数据或图像,Windows的很多应用程序都提供了全屏幕显示功能,如Word、Excel和IE等。本例通过响应鼠标单击在全屏幕上画数字曲线来说明如何实现程序的全屏幕显示。

  一、实现方法

  实现程序的全屏幕其实很容易,它的实现思路就是:首先要自定义一个窗口类,重载该窗口类的OnPaint()或OnDraw()函数,实现具体的窗口显示功能,然后调用API函数GetDeviceCaps(int nIndex )函数来获取当前显示屏幕的尺寸,如nIndex取LOGPIXELSX值可以得到屏幕的宽度(以像素为单位),取LOGPIXELSY值可以得到屏幕的高度。有了屏幕的尺寸还不够,还必须调用一个API函数MoveWindow()用来定位当前窗口到整个屏幕。需要读者注意的是,为了实现窗口与用户的交互,要在窗口中装载一个光标,另外,为了重全屏幕显示恢复到正常状态,需要在该窗口类中处理WM_KEYDOWN消息,在该消息处理函数中识别是否用户按下了ESC(退出)键,如是,程序恢复到正常显示状态。下面的代码实现了上面所有的功能,并且能够响应鼠标操作,在屏幕上数字曲线。编程步骤如下:

  1、定义一个窗口类CGribbleWnd,它包含两个整形变量m_pixelsX、m_pixelsY,分别用来存储窗口的尺寸;

  2、使用CLASSWIZARD重载窗口类的OnPain()函数,实现具体的显示功能;

  3、使用CLASSWIZARD为窗口类添加WM_CREATE、WM_ERASEBKGND、WM_KEYDOWN、WM_LBUTTONDOWN等消息处理函数,以实现全屏幕窗口和响应用户操作;

  二、程序代码:

  ////////////////////////////////////////////CGribbleWnd类的头文件

  #if !defined(AFX_GRIBBLEWND_H__6E1D4ED1_D9A6_11D4_9B9F_525400DAE6A0__INCLUDED_)

  #define AFX_GRIBBLEWND_H__6E1D4ED1_D9A6_11D4_9B9F_525400DAE6A0__INCLUDED_

  #if _MSC_VER > 1000

  #pragma once

  #endif // _MSC_VER > 1000

  class CGribbleWnd : public CWnd

  {

   // Construction

   public:

  CGribbleWnd();

  // Attributes

   public:

  // screen stuff

  int m_pixelsX;//存放屏幕的宽度;

  int m_pixelsY;//存放屏幕的高度;

  CDC* m_pDC;//设备上下文对象;

  HCURSOR m_hCursor; //光标句柄;

  COLORREF m_backColor; //颜色对象,用来存放用户自定义的颜色;

  // Operations

  // Overrides

  // ClassWizard generated virtual function overrides

  //{{AFX_VIRTUAL(CGribbleWnd)

  //}}AFX_VIRTUAL

  // Implementation

  virtual ~CGribbleWnd();

  // Generated message map functions

   protected:

  //{{AFX_MSG(CGribbleWnd)

  afx_msg BOOL OnEraseBkgnd(CDC* pDC);

  afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);

  afx_msg void OnLButtonDown(UINT nFlags, CPoint point);

  afx_msg void OnPaint();

  afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);

  //}}AFX_MSG

  DECLARE_MESSAGE_MAP()

  };

   //{{AFX_INSERT_LOCATION}}

  #endif // !defined(AFX_GRIBBLEWND_H__6E1D4ED1_D9A6_11D4_9B9F_525400DAE6A0__INCLUDED_)

  /////////////////////////////////////////////////////// CGribleWnd类的实现文件;

  #include "stdafx.h"

  #include "GribbleWnd.h"

  #include

  #ifdef _DEBUG

  #define new DEBUG_NEW

  #undef THIS_FILE

  static char THIS_FI

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号