创建一个简单的应用程序窗口,显示“欲穷千里目 更上一层楼”。这一行文字从窗口中向左滚动显示,而且每显示一轮,改变一次颜色,改变一次字体,一个周期为4种颜色,分别为红、绿、黄、蓝,四种字体分别为宋体、楷体、仿宋体和黑体。

#define _CRT_SECURE_NO_WARNINGS
#include <windows.h>
#include <stdlib.h>
#include <string.h>
using namespace std;
long WINAPI WndProc(HWND hWnd,UINT iMessage,UINT wParam,LONG lParam);                   //消息处理函数声明.
BOOL InitWindowsClass(HINSTANCE hInstance);         //初始化窗口类声明
BOOL InitWindows(HINSTANCE hInstance, int nCmdShow);//初始化窗口声明.
HWND hWndMain;      //定义窗口句柄.
int iFontFlag = 0; //定义字体标志.
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)            //主函数
{MSG Message;if (!InitWindowsClass(hInstance))      //初始化窗口类.return FALSE;if (!InitWindows(hInstance, nCmdShow))    //初始化窗口.return FALSE;while (GetMessage(&Message, 0, 0, 0)){TranslateMessage(&Message);          //消息循环.DispatchMessage(&Message);}return Message.wParam;
}
long WINAPI WndProc(HWND hWnd,UINT iMessage,UINT wParam,LONG lParam)            //消息处理函数.
{HDC hDC;               //定义设备环境句柄.HFONT hF;                //定义字体句柄.PAINTSTRUCT ps;        //定义包含绘图信息的结构体变量TEXTMETRIC tm;      //定义包含字体信息的结构体变量.char lpsz_1[] = "欲穷千里目  更上一层楼";     //定义输出字符串.char chFont[7];       //定义包含字体的字符串.int X = 0, Y = 0, nCharlen = strlen(lpsz_1);switch (iMessage){case WM_CREATE:SetTimer(hWnd, 1, 200, NULL);      //设定定时器.每0.2秒发出WM_TIMER消息.break;case WM_PAINT:                          //处理绘图消息.hDC = BeginPaint(hWnd, &ps);          //获取设备环境指针.if (iFontFlag / nCharlen == 0) //设置字体颜色.{SetTextColor(hDC, RGB(255, 0, 0));strcpy(chFont, "楷体");}else if (iFontFlag / nCharlen == 1){SetTextColor(hDC, RGB(0, 255, 0));strcpy(chFont, "宋体");}else if (iFontFlag / nCharlen == 2){SetTextColor(hDC, RGB(255, 255, 0));strcpy(chFont, "仿宋体");}else if (iFontFlag / nCharlen == 3){SetTextColor(hDC, RGB(0, 0, 255));strcpy(chFont, "黑体");}else{iFontFlag = 0;SetTextColor(hDC, RGB(255, 0, 0));}//设置字体.hF = CreateFont(          //获得字体句柄.40,                    //字体高度0,                    //系统自动调整宽度.0,                   //文本水平0,                    //字体倾斜度为0400,               //字体粗度.400为正常.0,                    //字体不倾斜.0,                  //无下划线.0,                   //无中划线.GB2312_CHARSET,      //字符集OUT_DEFAULT_PRECIS,    //默认输出精度.CLIP_DEFAULT_PRECIS,//默认裁剪精度DEFAULT_QUALITY,   //默认输出质量.DEFAULT_PITCH | FF_DONTCARE,//默认间距chFont);     //字体名称.SelectObject(hDC, hF);   //选入字体.GetTextMetrics(hDC, &tm);    //得到字体的信息.TextOut(hDC, X, Y, &lpsz_1[iFontFlag % nCharlen], nCharlen - iFontFlag % nCharlen);           //输出.iFontFlag += 2;  //字体标志自增.DeleteObject(hF);  //删除字体.EndPaint(hWnd, &ps); //删除设备环境指针.return 0;case WM_DESTROY:        //结束.PostQuitMessage(0);KillTimer(hWnd, 1);         //删除定时器.return 0;case WM_TIMER:InvalidateRect(hWnd, NULL, 1);   //刷新用户区.break;default:return(DefWindowProc(hWnd, iMessage, wParam, lParam));}return 0;
}
BOOL InitWindows(HINSTANCE hInstance, int nCmdShow)
{HWND hWnd;hWnd = CreateWindow("5_6",                //窗口类名称."字体显示实例程序",        //标题栏名称.WS_OVERLAPPEDWINDOW,   //窗口样式.有标题栏和最大最小化按钮.CW_USEDEFAULT,          //窗口左上角坐标.0,CW_USEDEFAULT,          //采用缺省的高度和宽度.0,NULL,                    //无父窗口.NULL,                    //无菜单.hInstance,                //当前应用实例句柄.NULL);                   //指向传递给窗口的参数的指针.不用.if (!hWnd)       //创建失败.return FALSE;hWndMain = hWnd;   //给全局窗口句柄付值.ShowWindow(hWnd, nCmdShow); //显示窗口.UpdateWindow(hWnd);          //刷新用户区.return TRUE;
}
BOOL InitWindowsClass(HINSTANCE hInstance)
{WNDCLASS WndClass;WndClass.cbClsExtra = 0;            //无窗口类扩展.WndClass.cbWndExtra = 0;          //无窗口实例扩展.WndClass.hbrBackground = (HBRUSH)(GetStockObject(WHITE_BRUSH));//背景为白色.WndClass.hCursor = LoadCursor(NULL, IDC_ARROW);  //光标为为箭头.WndClass.hIcon = LoadIcon(NULL, IDI_APPLICATION); //采用缺省图标.WndClass.hInstance = hInstance;           //当前实例.WndClass.lpfnWndProc = WndProc;         //消息处理函数.WndClass.lpszClassName="5_6";           //窗口类名称.WndClass.lpszMenuName = NULL;              //无菜单.WndClass.style = 0;                      //缺省窗口风格.return RegisterClass(&WndClass);   //返回窗口注册值.
}

创建一个简单的应用程序窗口,显示“欲穷千里目 更上一层楼”。这一行文字从窗口中向左滚动显示,而且每显示一轮,改变一次颜色,改变一次字体,一个周期为4种颜色,分别为红、绿、黄、蓝,四种字体分别为宋体、楷相关推荐

  1. python123程序设计题说句心里话_用c++写一个简单的计算器程序

    // 050305.cpp : 定义控制台应用程序的入口点. // // 050304.cpp : 定义控制台应用程序的入口点. // //四则运算 #include "stdafx.h&q ...

  2. 使用timer控件创建一个简单的报警程序

    简介: 当我使用计算机工作时,我总是如此的专心致志,以至于每当我过了"一会儿"去看时间时,发现已经过了三个小时,而我却完全没有意识到!所以我决定使用我从Code Project学来 ...

  3. 利用python实现一个简单的表白程序

    见过各种各样的表白方式,也听到过很多种表白方式,什么文科生式表白.理科生式表白呀,今天教你程序员的表白,咱们今天写一个简单的表白程序. 话不多说直接上教程 首先我们老样子先导入系统文件库 from t ...

  4. DuiVision开发教程(2)-如何写一个简单的界面程序

    基于DuiVision界面库开发的界面程序主要包括如下几部分内容: 1.资源定义,包括图片资源.各个窗口界面的xml定义文件 2.事件处理类代码,用于处理界面响应消息 3.其他业务逻辑代码 下面举例说 ...

  5. 用java开发一个简单的安卓程序,Android NDK开发简单程序分享(Hello Word!)

    在之前的博客中已经为大家介绍了,如何在win环境下配置DNK程序,本篇我将带大家实现一个简单的Hello jni程序,让大家真正感受一下NDK开发的魅力.这里我们选择使用C+JAVA开发Android ...

  6. 如何编写一个简单的 Python 程序

    本教程将教你如何编写一个简单的 Python 程序.我们将从解释 Python 程序是什么开始,然后继续讨论语法的各个方面,即语言的结构. 什么是 Python? Python是一种越来越受欢迎的编程 ...

  7. 用VB制作简单加法计算机,用VB设计一个简单的加法程序

    计算机的多媒体技术已经广泛普及, 对于一般的用户来说, 采用可视化编程工具是的选择, VB程序设计语言就是其中一个典型的代表.Visual Basic是Microsoft Windows的编程语言.V ...

  8. 一个简单的IPmsg程序源码分析(二)

    离上篇一个简单的IPmsg程序源码分析(一)已经基本半个月(上篇最初发布在点点上面,后边纠结了一下还是选择了博客园),利用空闲的时间终于把源码的构架和一些细节基本都搞清楚了,总的来说是很简单的一个客户 ...

  9. JAVA同时输入用户名和密码_用java模拟设计一个简单的“用户注册”程序。当用户输入用户名和密码时,单击“注...

    用java模拟设计一个简单的"用户注册"程序.当用户输入用户名和密码时,单击"注 2020 - 9 - 26 TAG : 所有功能均已实现,如有不满意的地方我再修改imp ...

最新文章

  1. python中导入的模块不能直接当方法用,需要采用模块.方法名或模块 as 别名,再别名.方法的形式
  2. 全套L4自动驾驶方案降至1万美元,RoboTaxi玩家的反击开始了
  3. python内置排序算法_2021-01-05 排序算法(Python语言实现)
  4. r读取shape文件可视化_【R】提取 PCA 结果并利用 ggplot2 进行可视化
  5. 【微信小程序】token/session失效了该怎么跳转页面
  6. 从中关村的小小柜台,但目前市值千亿元的公司
  7. 机器学习之SVM调参实例
  8. 建模常用Python代码
  9. Ubuntu离线安装curl
  10. 单舵轮(叉车)AGV里程计数据解算
  11. MIMO技术(一)分集与复用
  12. github不小心同步覆盖了本地文件
  13. Python之Pickle学习
  14. 计算机毕业设计ssm宠物商店信息展示与服务订购系统7q5ic系统+程序+源码+lw+远程部署
  15. NTP 时区+时间同步
  16. .net出现80080005错误的解决办法
  17. 【c++并发编程】pthread_create的使用
  18. training@USC 12 2
  19. cli命令行配置路由器_[企业路由器应用] 命令行—登陆
  20. 总结利用秩为1的矩阵相关矩阵的秩的计算问题

热门文章

  1. python极客学院爬虫_极客学院Python文本爬虫
  2. 如何保证Kafka有且仅消费一次?
  3. 实习面经(网易雷火)
  4. 商务礼仪基本常识(转载)
  5. HTML 表格跨行跨列
  6. HSIC Bottleneck的C++程序实现
  7. e1000驱动收包描述符和skb
  8. Android studio更新后项目报错Error:android-apt plugin is incompatible with the Android Gradle plugin. Pleas
  9. iptables tc限速笔记
  10. SSM纯注解后台代码整合(Spring+SpringMvc+Mybatis)