模仿QQ截图片

时间:2022-09-09 17:57:32

原文:模仿QQ截图片

两个picturebox,一个放图片

完整代码如下

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
using System.Xml;
namespace Test
{
public partial class Form1 : Form
{
private bool MouseIsDown = false;
private int _x, _y;
private Rectangle MouseRect = Rectangle.Empty;
public Form1()
{
InitializeComponent();
}
private void ResizeToRectangle(Point p)
{
DrawRectangle();
MouseRect.Width = p.X - MouseRect.Left;
MouseRect.Height = p.Y - MouseRect.Top;
DrawRectangle();
}
private void DrawRectangle()
{
Rectangle rect = this.RectangleToScreen(MouseRect);
ControlPaint.DrawReversibleFrame(rect, Color.White, FrameStyle.Dashed); }
private void DrawStart(Point StartPoint)
{
barkPictureBox.Capture = true;
Cursor.Clip = this.RectangleToScreen(new Rectangle(, , ClientSize.Width, ClientSize.Height));
MouseRect = new Rectangle(StartPoint.X, StartPoint.Y, , );
} private void button1_Click(object sender, EventArgs e)
{ } void barkPictureBox_MouseUp(object sender, MouseEventArgs e)
{
barkPictureBox.Capture = false;
Cursor.Clip = Rectangle.Empty;
MouseIsDown = false;
DrawRectangle(); if (MouseRect.X == || MouseRect.Y == || MouseRect.Width == || MouseRect.Height == ) //如果区域有一个是0就返回
{
}
else
{
///代码
} MouseRect = Rectangle.Empty;
int sx = _x < e.X ? _x : e.X;
int sy = _y < e.Y ? _y : e.Y;
int w = Math.Abs(_x - e.X);
int h = Math.Abs(_y - e.Y);
Graphics g = Graphics.FromHwnd(pictureBox2.Handle);
g.Clear(pictureBox2.BackColor);
g.DrawImage(barkPictureBox.Image, new Rectangle(, , w, h), sx, sy, w, h, GraphicsUnit.Pixel);
} void barkPictureBox_MouseMove(object sender, MouseEventArgs e)
{
if (MouseIsDown) ResizeToRectangle(new Point(e.X + barkPictureBox.Location.X, e.Y + barkPictureBox.Location.Y)); } void barkPictureBox_MouseDown(object sender, MouseEventArgs e)
{
_x = e.X;
_y = e.Y; MouseIsDown = true;
DrawStart(new Point(e.X + barkPictureBox.Location.X, e.Y + barkPictureBox.Location.Y));
} private void Form1_Load(object sender, EventArgs e)
{
barkPictureBox.MouseDown += new MouseEventHandler(barkPictureBox_MouseDown);
barkPictureBox.MouseMove += new MouseEventHandler(barkPictureBox_MouseMove);
barkPictureBox.MouseUp += new MouseEventHandler(barkPictureBox_MouseUp); }
}
}

模仿QQ截图片的更多相关文章

  1. Android模仿QQ空间图片上传——原理

    MainActivity.class package com.example.imagedemotext; import java.io.ByteArrayOutputStream; import j ...

  2. 活跃天数计算用户等级模仿QQ的升级方式

    QQ等级的算法:设当前等级为N,达到当前等级最少需要的活跃天数为D,当前活跃天数为Dc,升级剩余天数为Dr,则: 从而推出: 好了,引述完成,懒得写字了,贴出代码: 复制内容到剪贴板 代码: < ...

  3. 模仿QQ空间 网页设计

    目的:1.通过模仿QQ空间,全自主写代码,熟悉网页设计的流程 2.熟练的掌握HTML.CSS.JS的应用 3.将在此过程中遇到的问题及其解决方法记录在此,以便取用. 开始: 一.登陆界面(index. ...

  4. 模仿QQ气泡聊天

    尝试了几种方案,想模仿QQ的气泡聊天,总是不尽如意.网上倒是大把的Android和Html的例子,Delphi的没找着,只能自己试着折腾. 1. 用WebBrowser加载本地html,屡次折腾,失败 ...

  5. Qt 之 模仿 QQ登陆界面——样式篇

    一.简述 今天晚上花了半天时间从QQ登录界面抠了些图,顺便加了点样式基本上实现了QQ的登陆界面全部效果.虽不说100%相似,那也有99.99%相似了哈O(∩_∩)O. QQ好像从去年开始,登录界面有了 ...

  6. iOS之基于FreeStreamer的简单音乐播放器&lpar;模仿QQ音乐&rpar;

    代码地址如下:http://www.demodashi.com/demo/11944.html 天道酬勤 前言 作为一名iOS开发者,每当使用APP的时候,总难免会情不自禁的去想想,这个怎么做的?该怎 ...

  7. iOS检测用户截屏并获取所截图片

    iOS检测用户截屏并获取所截图片 微信可以检测到用户截屏行为(Home + Power),并在稍后点击附加功能按钮时询问用户是否要发送刚才截屏的图片,这个用户体验非常好.在iOS7之前, 如果用户截屏 ...

  8. iOS 学习 - 13&period;微信分享链接、QQ 分享图片

    准备工作---原文来自这个 首先要在微信开放平台申请 AppID 和 QQ ID(我第一天晚上申请的,第二天中午就通过了),接着导入 SDK,也就是3个 .h 和一个 .a 文件,详情见这里 如果你是 ...

  9. Android 模仿QQ空间风格的 UI(转)

    本文内容 环境 演示模仿QQ空间风格的UI 虽然这个 UI 跟现在的QQ空间有点差别,但是也能学到很多东西. 下载 Demo 环境 Windows 7 64 位 Eclipse ADT V22.6.2 ...

随机推荐

  1. a标签点击跳转失效--IE6、7的奇葩bug

    一般运用a标签包含img去实现点击图片跳转的功能,这是前端经常要用到的东西. 今天遇到个神奇的bug:如果在img上再包裹一层div,而且div设置了width和height,则图片区域点击时,无任何 ...

  2. group&lowbar;concat函数使用

    t1表 语句: select type,group_concat(name) from t1 group by type 结果

  3. IUnknown&lpar;TVarData&lpar;Params&lbrack;0&rsqb;&rpar;&period;VPointer&rpar; as Range

    IUnknown(TVarData(Params[0]).VPointer) as Range 修改为  IUnknown(TVarData(Params[0]).VPointer) as WOrd_ ...

  4. Java-集合-第三题 有如下Student 对象, private String name&semi; private int age&semi; private int score&semi; private String classNum&semi; 其中,classNum 表示学生的班号,例如&OpenCurlyDoubleQuote;class05”。 有如下List List list &equals; new ArrayList&lpar;&rpar;&semi; l

    第三题 有如下Student 对象, private String name; private int age; private int score; private String classNum; ...

  5. 【EF学习笔记03】----------使用原生Sql语句

    在EF中使用原生SQL,首先要创建上下文对象 using (var db = new Entities()) { //数据操作 } 新增 string sql = "insert into ...

  6. STL中的所有算法&lpar;70个&rpar;

    STL中的所有算法(70个)----9种类型(略有修改by crazyhacking) 参考自: http://www.cppblog.com/mzty/archive/2007/03/14/1981 ...

  7. JS 部分基础内容总结

    JavaScript 是脚本语言 HTML 中的脚本必须位于 <script> 与 </script> 标签之间. 脚本可被放置在 HTML 页面的 <body> ...

  8. CXF对Interceptor拦截器的支持

    前面在Axis中介绍过Axis的Handler,这里CXF的Interceptor就和Handler的功能类似.在每个请求响应之前或响应之后,做一些事情.这里的Interceptor就和Filter. ...

  9. 74&period;纯 CSS 创作一台 MacBook Pro

    原文地址:https://segmentfault.com/a/1190000015568609 HTML code: <div class="macbook"> &l ...

  10. sort is deprecated&comma; use sort&lowbar;values&lpar;inplace&equals;True&rpar; for INPLACE sorting

    排序是过时的,用sort_values(到位=真)为就地排序