DuiLib(四)——控件绘制】的更多相关文章

duilib的所有控件均绘制在唯一的真实窗口之中,本篇就具体看下这个绘制的过程.所有的绘制过程均在WM_PAINT消息处理过程中完成.由窗口及消息篇可以看到,窗口消息处理最终流到了CPaintManagerUI::MessageHandler中.包括WM_PAINT在内消息均在此函数中处理,我们仅关注WM_PAINT消息 case WM_PAINT: { // Should we paint? RECT rcPaint = { }; if( !::GetUpdateRect(m_hWndPain…
问题描述: 使用C#中ZedGrap控件绘制图表曲线图 ZedGrap 介绍说明:     安装ZedGrap控件 ZedGraph控件dll文件: 添加ZedGraph控件,首先在新建立的C#图像工程中,添加ZedGrap.dll文件 注:     在工程项目中的引用中,单击右键,选择添加引用,出现的"添加引用"对话框中,选择浏览添加ZedGraph.dll文件 注:     添加成功的ZedGraph.dll文件,会出现在引用中 注:     如上图所示,在工具箱中的空白处,单击右…
在.NET中以前经常用GDI去绘制,虽然效果也不错,自从.NET 4.0开始,专门为绘制图表而生的Chart控件出现了,有了它,就可以轻松的绘制你所需要的曲线图.柱状图什么的了. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows.Forms; using System.Windows.Forms.DataVisualization.C…
进行程序设计时,选用一个合适的ActiveX控件,有时可大大减少编程工作量.ActiveX 控件(又称OCX)基于COM技术,作为独立的软件模块,它可以在任何程序设计语言中插入使用.本文仅以VC++为例说明Chart控件的使用. Chart控件指Mschart.ocx(5.0版)或Mschrt20.ocx(6.0 版),是Visual Studio自带的ActiveX控件之一,其属性.事件很多,功能非常强大,可实现柱状直方图.曲线走势图.饼状比例图等,甚至可以是混合图表,可以是二维或三维图表,可…
c# 通过.net自带的chart控件绘制饼图pie chart   需要实现的目标是: 1.将数据绑定到pie的后台数据中,自动生成饼图. 2.生成的饼图有详细文字的说明. 具体的实现步骤: >>前台界面的设置: 1.设置chart1的属性Legends中默认的Legend1的Enable为false: 2.设置Series的ChartType为Pie 3.设置Series显示的文字内容(此处比较关键) 至此,前台的设置完成. >>下面填写后台代码: List<string…
原文:Expression Blend学习四控件 Expression Blend制作自定义按钮 1.从Blend工具箱中添加一个Button,按住shift,将尺寸调整为125*125; 2.右键点击此按钮,选择Edit control parts(template)>Edit a copy... 3.在弹出的Create style resource对话框中,修改新按钮样式的名称 4.在左侧的Object and timeline面板中选中ContentPresenter元素,按Ctrl+X…
转载请说明原出处,谢谢~~:http://blog.csdn.net/zhuhongshu/article/details/41786407 duilib的CEditUI控件内部使用了win32的原生edit控件,最近在做的一个项目里需要增强CEditUI控件的一些功能,我就把改进的代码写到博客里.实际上改进代码很简单,不过也许能其他人会用到,就不用再费时了.  增加的功能如下:      1.增加提示文本,并且可以设置提示文本的颜色,当CEditUI初始化或者无文本的状态下,可以自动按照一定颜…
中午,有个货随手买的2块钱的彩票,尼玛中了540块,这是啥子狗屎气运.稍微吐槽一下,现在开始正规的笔记录入.经常有朋友说为毛我的博客不更新了或者说更新的少了,为啥呢!一来自己懒了,没学习什么新的东西,二来平常琐事多,于是这个博客更新就少了.FMX目前已经更新了好几个版本,甚至连属性方法都改过了,从以前刚出来时候的拼音输入法支持都有Bug,到现在基本上比较流畅运行,说明了进步还是挺大的,那么学习这个东西也应该可以是提上日程了,或许不久的将来会用到. FMX是一套UI类库,就相当于以前的VCL,但是…
转载请说明出处,谢谢~~:http://blog.csdn.net/zhuhongshu/article/details/42264673 关于这个bug的修复我之前写过一篇博客,连接为:http://blog.csdn.net/zhuhongshu/article/details/40622705 本以为已经修复好,但是后来有网友私聊我,反映到还存在bug.原本已经解决的bug如下: 1.当List出现滚动条后,拖动滚动条,这时ListContainElementUI控件内部的子控件跟随Hea…
转载请说明原出处,谢谢~~:http://blog.csdn.net/zhuhongshu/article/details/41556615 在duilib中,按tab键会让焦点在Button一类的控件中切换,但是切换焦点一直存在bug,具体的描述如下: 1.在主窗体里弹出新的窗体,当新窗体中存在CEditUI控件并且焦点在此CEditUI控件上,那么按tab键将无法切换焦点而一直处于CEditUI中.(只在新窗体中有此bug,主创体中没有,原因会在后面分析) 2.CWebBrowserUI控件…
最近因为公司项目需要用到WinForm的DecExpress控件,在这里把一些使用方法总结一下. DevExpress中有一个专门用来绘制图表的插件ChartControl,可以绘制折线图.饼状图.柱状图等图表. 1.绘制图表基本步骤 准备数据并绑定 这里从数据库中取得数据,可以根据自己的需要修改. 1 DataTable dtData = BF<bll_ep_collection_data>.Instance.GetDataTable(sqlwhere, "data_time&qu…
转载请说明出处,谢谢~~ 这篇博客已经作废,只是留作记录,新的bug修复博客地址:http://blog.csdn.net/zhuhongshu/article/details/42264673 之前就在群里挺群友朋友说道,使用List控件,里面加入ListContainElementUI元素,当List出现横向滚动条时,滚动条滑动后元素不跟着滑动或者滑动后位置不正确. 关于List控件的扩展,很早就有人做过了: http://blog.csdn.net/xdrt81y/article/deta…
转载请说明出处,谢谢~~ 群里有朋友提到了使用Combo控件时,当下拉列表出现,此时鼠标滚轮滚动,下拉列表就自动消失了.我看了一下源码,这个bug的修复很简单. CComboUI控件被单击时创建CComboWnd窗体来模拟下拉菜单.CComboWnd类在HandleMessage函数里处理了鼠标滚动消息WM_MOUSEWHEEL,他把这个消息转发给CComboUI的DoEvent函数去处理,而CComboUI的DoEvent函数处理对应的UIEVENT_SCROLLWHEEL消息,又转而调用了S…
第一次写博,没什么经验,主要是把最近自己对Dev的一些研究贴出来大家共同探讨,有不足之处望大家帮忙斧正. WebChartControl是DevExpress控件群下的一个Web图表控件,它使用非常的方便,生成的图表也相当的漂亮. 先贴出几张WebChartControl生成的图表: Web页面代码WebChartControl.aspx: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind=&qu…
在进行软件开发过程中我们可能会碰到需要生成图表的情况,在.NET中以前经常用GDI去绘制,虽然效果也不错,自从.NET 4.0开始,专门为绘制图表而生的Chart控件出现了,有了它,就可以轻松的绘制你所需要的曲线图.柱状图什么的了.废话不多说,直接附上代码,实现绘制曲线图,并能进行视图缩放,注释很多,相信一看就明白. using System; using System.Collections.Generic; using System.Linq; using System.Text; usin…
在.Net4.0框架中,微软已经将Mschart控件集成了进来,以前一直在web下面用过,原来winform下的Mschart控件更加简单更加方便,今天我们用mschart绘制一个多曲线图,话不多说,直接上效果图: 发现,MsChart 的显示效果还是不错的. 代码如下,供大家参考: public partial class FrmMain : Form { public FrmMain() { InitializeComponent(); InitializeChart(); this.Loa…
在.Net4.0框架中,微软已经将Mschart控件集成了进来,以前一直在web下面用过,原来winform下的Mschart控件更加简单更加方便,今天我们用mschart绘制一个多曲线图,话不多说,直接上效果图: 发现,MsChart 的显示效果还是不错的. 代码如下,供大家参考: public partial class FrmMain : Form { public FrmMain() { InitializeComponent(); InitializeChart(); this.Loa…
绘制方法: 1.在控件的paint事件中绘制 2.绘制成图片,然后作为背景图或图片贴到工作区. Bitmap bmp = new Bitmap(IWidth, this.Height); Graphics g = Graphics.FromImage(bmp); .... 最后调用即可 this.BackgroundImage = I_Paint(); 添加功能: 1.绘制时,添加相应的坐标区域,放到全局字典中,字典中包含区域.热点名称等. 2.在整个组件上添加MouseMove事件,鼠标经过时…
一.需要实现的目标是: 1.将数据绑定到pie的后台数据中,自动生成饼图. 2.生成的饼图有详细文字的说明. 1.设置chart1的属性Legends中默认的Legend1的Enable为false: 如图1所示: 图1 2.设置Series的ChartType为Pie,如图2所示: 图2 图3 3.后台绑定数据       List<string> xData = new List<string>() { "A", "B", "C…
在.Net4.0框架中,微软已经将Mschart控件集成了进来,以前一直在web下面用过,原来winform下的Mschart控件更加简单更加方便,今天我们用mschart绘制一个多曲线图,发现MsChart 的显示效果还是不错的,话不多说,直接上效果图: 代码如下,供大家参考: public partial class FrmMain : Form { public FrmMain() { InitializeComponent(); InitializeChart(); this.Load…
最近因为公司项目需要用到WinForm的DecExpress控件,在这里把一些使用方法总结一下. DevExpress中有一个专门用来绘制图表的插件ChartControl,可以绘制折线图.饼状图.柱状图等图表. 1.绘制图表基本步骤 准备数据并绑定 这里从数据库中取得数据,可以根据自己的需要修改. 1 DataTable dtData = BF<bll_ep_collection_data>.Instance.GetDataTable(sqlwhere, "data_time&qu…
完整代码见:https://github.com/netease-im/NIM_Duilib_Framework/pull/151 核心代码(思路): appitem.h #pragma once #define APP_HEIGHT 90 #define APP_WIDTH 90 #define EACH_LINE 6 #include <string> //app的具体信息,这里假定有id,name,_icon,_isFrequent自行拓展 struct AppItem { std::s…
1. 多坐标折线图 在这个项目中,我需要做不同采集地方和不同数据类型的数据对比,自然而然就用到了多重坐标轴,多重坐标轴可以是多个X轴,也可以是Y轴,它们的处理方式类似.本文通过项目中的实际例子介绍多重Y轴的形式,希望给大家有一个很好的参考.ChartControl图表控件提供了SecondaryAxisY对象来处理多重坐标的问题.CreateAxisY用来创建一个多重坐标轴的代码如下所示,注意这里多重坐标,使用了和Series一样的View.Color颜色,这样方便区分. /// <summar…
绘制基本图形和文本 绘制图形和文本的基本方法 drawPoint(绘制点).drawLine(绘制直线).drawCircle(绘制圆) drawArc(绘制弧).drawText(绘制文本) package cn.eoe.draw; import android.app.Activity; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import a…
转载:http://blog.csdn.net/rundll64/article/details/24823809?locationNum=6&fps=1 发现LabelUI的[属性列表.XML]里有valign属性,而代码里却找不到,是因为valign属性被合并到align属性里去了,只要设置align="center"就可以水平垂直都居中,但是想要垂直居中,水平左对齐啥的,就犯难了,因此这里需要将两个属性分开,valign管垂直,align管水平,这样想要怎么组合都OK啦.…
参考博客:Redrain 转载:http://blog.csdn.net/zhuhongshu/article/details/41786407 在Redrain博客的基础上做了修改 1.CEditUI的DoEvent函数添加一下代码 ///////////////////////// if( event.Type == UIEVENT_SETFOCUS && IsEnabled() ) { ) { SetText(GetText());//说明用户有输入,显示用户输入 } else {…
////////////////////////////////////////////////////////////// LRESULT ListViewCustomDraw(HWND hwnd, LPARAM lParam) { LPNMHDR pnmh = (LPNMHDR) lParam; if (pnmh->code != NM_CUSTOMDRAW) return 0; LPNMLVCUSTOMDRAW lpNMCustomDraw = (LPNMLVCUSTOMDRAW) lPa…
效果图:这4个分别是按钮按下后4种状态的效果 第88行是显示默认的按钮文字,没有id,SetWindowText改的就是它了 第87行是左边的图片,id是ico,可以通过程序控制 第89行是蓝色的文字,id是type,可以通过程序控制 下面是程序示例:…
1 首先注册gridview的this.edibandedGridView.CustomDrawColumnHeader += EdibandedGridView_CustomDrawColumnHeader事件,然后在事件中写入如下代码: private void EdibandedGridView_CustomDrawColumnHeader(object sender, ColumnHeaderCustomDrawEventArgs e) { RepositoryItemCheckEdit…
    在[2013 duilib入门简明教程 -- 复杂控件介绍 (13)]中虽然介绍了界面设计器上的所有控件,但是还有一些控件并没有被放到界面设计器上,还有一些常用控件duilib并没有提供(比如菜单控件).虽然duilib没有提供这些控件,但是自己绘制起来也是非常方便的,不过duilib的自绘可比MFC方便得不止一点点了,其实duilib的自绘大都不用自己绘制,就是一些控件和图片的组合而已,相当简单方便~~~       一.菜单控件     其实菜单控件的外观和ListBox非常像,所以…