当前位置:  编程技术>.net/c#/asp.net

winform壁纸工具为图片添加当前月的日历信息

    来源: 互联网  发布时间:2014-10-16

    本文导语:  这几天用winform做了一个设置壁纸的小工具, 为图片添加当月的日历并设为壁纸,可以手动设置壁纸,也可以定时设置壁纸,最主要的特点是在图片上生成当前月的日历信息。 工具和桌面设置壁纸后的效果如下:  在图片上画...

这几天用winform做了一个设置壁纸的小工具, 为图片添加当月的日历并设为壁纸,可以手动设置壁纸,也可以定时设置壁纸,最主要的特点是在图片上生成当前月的日历信息。

工具和桌面设置壁纸后的效果如下:
 
在图片上画日历的类代码Calendar.cs如下:
代码如下:

using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using System.IO;
using System.Drawing.Imaging;
namespace SetWallpaper
{
public class Calendar
{
///
/// 计算星期几: 星期日至星期六的值为0-6
///
public static int GetWeeksOfDate(int year, int month, int day)
{
DateTime dt = new DateTime(year, month, day);
DayOfWeek d = dt.DayOfWeek;
return Convert.ToInt32(d);
}
///
/// 获取指定年月的天数
///
public static int GetDaysOfMonth(int year, int month)
{
DateTime dtCur = new DateTime(year, month, 1);
int days = dtCur.AddMonths(1).AddDays(-1).Day;
return days;
}
///
/// 获取在图片上生成日历的图片
///
public static Bitmap GetCalendarPic(Image img)
{
Bitmap bmp = new Bitmap(img.Width, img.Height, PixelFormat.Format24bppRgb);
bmp.SetResolution(72, 72);
using (Graphics g = Graphics.FromImage(bmp))
{
g.DrawImage(img, 0, 0, img.Width, img.Height);
DateTime dtNow = DateTime.Now;
int year = dtNow.Year;
int month = dtNow.Month;
int day = dtNow.Day;
int day1st = Calendar.GetWeeksOfDate(year, month, 1); //第一天星期几
int days = Calendar.GetDaysOfMonth(year, month); //获取想要输出月份的天数
int startX = img.Width / 2; //开始的X轴位置
int startY = img.Height / 4; //开始的Y轴位置
int posLen = 50; //每次移动的位置长度
int x = startX + day1st * posLen; //1号的开始X轴位置
int y = startY + posLen * 2;//1号的开始Y轴位置
Calendar.DrawStr(g, dtNow.ToString("yyyy年MM月dd日"), startX, startY);
string[] weeks = { "日", "一", "二", "三", "四", "五", "六" };
for (int i = 0; i < weeks.Length; i++)
Calendar.DrawStr(g, weeks[i], startX + posLen * i, startY + posLen);
for (int j = 1; j 0)
{
Random random = new Random();
int r = random.Next(1, files.Length);
Bitmap img = (Bitmap)Bitmap.FromFile(files[r].FullName);
pictureBox1.Image = img;
SetWallpaper(img);
}
}
///
/// 双击托盘图标显示窗体
///
private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e)
{
ShowForm();
}
///
/// 隐藏窗体,并显示托盘图标
///
private void HideForm()
{
this.Visible = false;
this.WindowState = FormWindowState.Minimized;
notifyIcon1.Visible = true;
}
///
/// 显示窗体
///
private void ShowForm()
{
this.Visible = true;
this.WindowState = FormWindowState.Normal;
notifyIcon1.Visible = false;
}
private void ToolStripMenuItemShow_Click(object sender, EventArgs e)
{
ShowForm();
}
///
/// 退出
///
private void toolStripMenuItemExit_MouseDown(object sender, MouseEventArgs e)
{
Application.Exit();
}
///
/// 最小化时隐藏窗体,并显示托盘图标
///
private void FrmMain_SizeChanged(object sender, EventArgs e)
{
if (this.WindowState == FormWindowState.Minimized)
{
HideForm();
}
}
}
}

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • C# winform treeview添加右键菜单并选中节点的方法
  • C#(WinForm) ComboBox和ListBox添加项及设置默认选择项
  • WinForm中DataGridView添加,删除,修改操作具体方法
  • c#多线程更新窗口(winform)GUI的数据
  • java开源软件 iis7站长之家
  • C# WinForm中禁止改变窗口大小的方法
  • WinForm相对路径的陷阱
  • c# Winform 全窗口拖动的代码
  • Winform实现抓取web页面内容的方法
  • WinForm实现关闭按钮不可用或隐藏的方法
  • 解读在C#中winform程序响应键盘事件的详解
  • c# winform 关闭窗体时同时结束线程实现思路
  • WinForm实现读取Resource中文件的方法
  • C# Winform 整个窗口拖动的实现代码
  • WinForm下 TextBox只允许输入数字的小例子
  • Winform跨线程操作的简单方法
  • C# WinForm程序完全退出的问题解决
  • C# WinForm窗体编程中处理数字的正确操作方法
  • C# Winform 让整个窗口都可以拖动
  • 使用C# Winform应用程序获取网页源文件的解决方法
  • c# 天气预报查询(winform方法)的实现代码(图文)
  • C# Winform 禁止用户调整ListView的列宽
  • C# winform编程中响应回车键的实现代码
  • C#中禁止Winform窗体关闭的实现方法


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3