当 static 控件或具有 ES_READONLY 风格的 edit 控件被绘制时,会向父窗口发送 WM_CTLCOLORSTATIC 消息.如果我们在窗口过程中处理该消息,就必须返回一个画刷句柄,Windows 会使用该画刷来绘制控件背景(子窗口背景). 也就是说,改变 static 控件的背景颜色只有这一种方式,就是处理 WM_CTLCOLORSTATIC 消息.WM_CTLCOLORSTATIC 消息就是用来设置背景画刷的. 改变 static 控件的背景颜色: LRESULT CALL…
通过映射OnCtlColor消息,而后在该函数中使用pDC->SetBkMode(TRANSPARENT)使Static控件背景透明时会出现:文本覆盖重影的问题,当改变控件的文本就会发生新文本与旧文本重叠的现象. 可以通过以下方式使Static控件文本在透明状态下改变时不会产生文本重叠问题: 1.由于Static控件的背景已经是透明的了,那么旧文本应该是画在Static控件的父窗口上的. 2.在给Static控件设置新文本之后(不是之前!)刷新父窗口即可.例如: GetDlgItem(IDC_S…
ListView在View属性为Details的时候它呈现的方式和DataGirdView差不多,它的每一行都是一个ListViewItem,然而每个ListViewItem都有一个BackColor的属性,但是设置了这个属性却没有任何作用.因为是ListView的每一行的样式都继承的父控件的样式所以无法改变. 解决方案: ListViewItem item; item = new ListViewItem(new string[] { "NAME","" });…
在对话框上放一个StaticText控件后如果文字长度不能铺满控件的 rect,如下: 那么运行时会出现如下效果 通过MSG_WM_CTLCOLORSTATIC消息修改static控件背景色模式为透明 HBRUSH CTestView::OnCtlColorStatic(CDCHandle dc, CStatic wndStatic) { // 修改背景色模式为透明 SetBkMode(dc, TRANSPARENT); // 修改指定ID的控件文本颜色 int nID = wndStatic.…
CWnd::OnCtlColor afx_msg HBRUSH OnCtlColor( CDC* pDC, CWnd* pWnd, UINT nCtlColor ); 返回值:OnCtlColor必须返回一个刷子句柄,该刷子将被用于画出控件的背景. 参数: pDC 包含了子窗口的显示设备环境的指针.可能是临时的. PWnd 包含了要求颜色的控件的指针.可能是临时的. NCtlColor 包含了下列值,指定了控件的类型: · CTLCOLOR_BTN 按钮控件 · CTLCOLOR_DLG 对话框…
#define WM_CTLCOLORMSGBOX 0x0132 #define WM_CTLCOLOREDIT 0x0133 //编辑控件Edit #define WM_CTLCOLORLISTBOX 0x0134 //列表控件ListBox #define WM_CTLCOLORBTN 0x0135 //按钮控件BottonBox #define WM_CTLCOLORDLG 0x0136 #define WM_CTLCOLORSCROLLBAR 0x0137 #define WM_CTLC…
自定义控件之调整按钮中子控件(图片和文字)的位置 其实还有一种是在storyBoard中实现的,只需要设置对应空间的左右间距: 这里实现前面两种自定义的方式 一:imageRectForContentRect/titleRectForContentRect 自定义一个按钮控件在系统自带的位置设置方法中实现对应子控件位置调整 /** * 设置内部图标的frame */ - (CGRect)imageRectForContentRect:(CGRect)contentRect { CGFloat i…
已经很少做winform程序了,最新参与了一个小项目,遇到了控件背景透明的功能要求,特在此总结一下,供有需要的同行参考. 0.背景透明的概念和分类 背景透明是啥意思呢,就是背景透明.哈哈,废话了.其实你想过没有,要求不一样,实现的难道和技术手段也不一样. 最基本的就是不显示控件自己的背景,那,那显示谁的背景? 背景透明后,透过去显示谁,也就是说后面的谁不透明,这是问题的关键,换句话说,透明控件的parent是一个还是多个. 1.简单的背景透明,parent是一个的情况 a.自然透明,如图labe…
绘制n边形:用两个以上的控件来控制矩形的颜色.大小.位置及空实心.(n由键盘输入) package lzy.di9zhang; import java.awt.BorderLayout;import java.awt.Graphics;import java.awt.Point;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.FocusEvent;import…
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; using System.Reflection; namespace WindowsFormsApplication2 { public class UserAgentHelper { priva…
根据32位.64位系统来分别修改对应的注册表路径的键值对,不需要重启程序. /// <summary> /// 修改Webbrowser控件模拟的IE版本 /// </summary> /// <param name="ieMode"> /// 7000: Pages containing standards-based <!DOCTYPE> directives aredisplayed in IE7 mode. /// 8000: P…
常用图片填充方式 这里只介绍三个最常用的图片填充方式 UIViewContentModeScaleToFill模式会导致图片变形.例如: UIViewContentModeScaleAspectFit会保证图片比例不变,而且全部显示在ImageView中,这意味着ImageView会有部分空白.例如: UIViewContentModeScaleAspectFill也会证图片比例不变,但是是填充整个ImageView的,可能只有部分图片显示出来.例如: 图片作为控件背景图的拉伸方式 当一个图片作…
近段时间在自学WPF,是一个完全不懂WPF的菜鸟,对于在线程中修改UI控件使用委托做一个记录,给自已以后查询也给需要的参考: 界面只放一个RichTextBox,在窗体启动时开起两个线程,调用两个函数,每隔1秒写一次当前时间 一 界面XAML如下: <Window x:Class="WpfApplication1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation&qu…
/*添加背景图片*/ BOOL CTOOLDlg::OnEraseBkgnd(CDC* pDC) { // TODO: 在此添加消息处理程序代码和/或调用默认值 CDialog::OnEraseBkgnd(pDC); HBITMAP m_hBitmap; HDC m_hBkDC; m_hBitmap = ::LoadBitmap(::GetModuleHandle(NULL),MAKEINTRESOURCE(IDB_BITMAP2)); m_hBkDC = ::CreateCompatibleD…
本例实现了动态修改ImageView控件的宽高度,有两个按钮,一个按钮实现放大image,一个按钮实现缩小image activity_main.xml <?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android&qu…
1.新建一个基于对话框的工程MyLink,在对话框中拖一个Static控件,ID可改为IDC_SLink. 2.在头文件中添加成员变量: private: CRect m_Rect; CFont* m_cfNtr; CFont m_cfUL; LOGFONT m_lfNtr, m_lfUL; COLORREF m_color; CBrush m_brush; 3.在.cpp文件中利用类向导添加初始化虚函数,并添加代码: BOOL CMyLinkDlg::OnInitDialog() { CDia…
/*加入背景图片*/ BOOL CTOOLDlg::OnEraseBkgnd(CDC* pDC) {  // TODO: 在此加入消息处理程序代码和/或调用默认值  CDialog::OnEraseBkgnd(pDC);  HBITMAP   m_hBitmap;  HDC           m_hBkDC;  m_hBitmap   =   ::LoadBitmap(::GetModuleHandle(NULL),MAKEINTRESOURCE(IDB_BITMAP2));  m_hBkDC…
原文:WPF 在绘图控件(Shape)中添加文字 [2018.7.15] Q:使用Shape的子类Ellipse画一个圆,如何在圆中添加文字? A:Shape类中不包含Text属性.可使用Shape类和TextBlock类组合,放到Grid中来实现.      纯xaml的写法: <Grid Height="50" Width="50"> <Ellipse Fill="Yellow" Stroke="Blue"…
原文:WPF 后台C#设置控件背景图片 以前的程序中有做过,当时只是记得uri很长一大段就没怎么记.今天有人问了也就写下来.   这是一个Button,设置了Background后的效果. 前台的设置比较方便 XAML: <Button Height="174" Name="button1" Width="349"> <Button.Background> <ImageBrush ImageSource="…
方案1: 我昨天刚在csdn上解决了这个问题,不是双缓冲和WS_CLIPCHILDREN还有背景擦出什么的问题,就是在你重画的时候要去掉这些控件(按钮什么的)区域, 闪屏是因为窗口大小发生改变时,由于控件移动会有重影,因此对话框会去擦除背景,包括控件遮挡的地方,但是控件自己会去刷新,因此,解决方案可以在擦背景时去除控件位置背景的擦除. 关键代码如下,可以在onpaint 或者OnEraseBkgnd里面加入,灵活使用吧 GetDlgItem(IDC_BUTTON1)->GetWindowRect…
今天主要总结一下有关MFC 中静态编辑框(StaticEdit).编辑框(Edit)和按钮(Button)的背景颜色.字颜色和字体. 我的程序运行结果如下: 由上图我们知道修改的地方有:1.把StaticEdit的背景颜色变成黄色,字体颜色变成蓝色:2.Edit的背景颜色变成黄色,字体变成红色,字体为华文楷体 3.Button的背景颜色为绿色,字体为红色. 1.对StaticEdit控件修改 在0106ChangeColorDlg.h中添加一个变量CBrush m_brush,用来保存控件的背景…
最近在项目中将CStatic控件设置为背景透明且在一个定时器函数改变其文本,结果CStatic的文字重叠了.解决该问题的方案是:从CStatic类派生自己的静态文本控件. 其实设置背景透明,也就是在CStatic重画时,返回一个空刷子而已,所以改变文本并没有改变上次残留的背景,从而导致重叠现象. 为了解决这个问题,我们可以让父窗口重绘该区域,以下是我的解决方法: 1: 从CStatic继承一个类CStaticEx 2: 增加WM_CTLCOLOR消息反射(把很多事情留给父窗口窗口处理不是一件很好…
在MFC类库提供了CWnd::OnCtlColor函数,在工作框架的子窗口被重画时将调用该成员函数.因此可以重载WM_CTLCOLOR消息的响应函数.此函数的原型:afx_msg HBRUSH OnCtlColor(CDC *pDC,CWnd *pWnd,UINT nCtlColor);参数nCtlColor用于指定控件的类型,可以是:.CTLCOLOR_BTN 按钮控件.CTLCOLOR_DLG 对话框.CTLCOLOR_EDIT 编辑框.CTLCOLOR_LISTBOX 列表控件.CTLCO…
写个普通的MFC桌面程序,为了美化界面用了界面库,然后界面上的静态文本就出现了重叠的效果,就像下面这样: 但是窗口被刷新一下就好了,比如被遮挡后恢复的时候.在程序中可以手动加入以下代码: void CAppHelperDlg::RefreshStatic() { if (((CStatic*)GetDlgItem(IDC_Status))->GetSafeHwnd()) { CStatic* pStatic = (CStatic*)GetDlgItem(IDC_Status); ASSERT(p…
惯例附上前几个博客的链接: MFC入门(一)简单配置:http://blog.csdn.net/zmdsjtu/article/details/52311107 MFC入门(二)读取输入字符:http://blog.csdn.net/zmdsjtu/article/details/52315088 /////////////////////////////////////////////////正文/////////////////////////////////////////////////…
转自:http://blog.csdn.net/u013278940/article/details/51152655 TextView本没有点击效果,故为实现点击后文字颜色改变和背景改变,需要写selector进行点击时颜色的替换.效果图如下: 未点击时:字颜色为黑色,背景为系统默认颜色.点击时:字体颜色为绿色,背景色为粉色.如下图所示: 布局文件: res/layout/activity_main.xml <TextView android:layout_width="fill_par…
在移动web开发过程中,常常会用到input file这控件,但css不能修改其样式往往让开发者很头疼,直接把他放到页面上又不美观: 下面介绍的方法,可以将该控件的显示样式替换成一个图标:   该方法主要思路是:在带有input file的表单外面增加一个<a>标签,设置<a>标签的背景,并用透明度隐藏input标签. 在页面上显示的效果如下图,经测试ios5+,android2.3+的自带浏览器都较好的兼容该效果.       代码如下: HTML   HTML   <a…
参考自(http://blog.csdn.net/ribut9225/article/details/6720639) 1.首先从CListCtrl 继承一个类,命名为CListCtrlCl 在头文件中加摸板 CMap<DWORD, DWORD&, COLORREF, COLORREF&> MapItemColor;好在这里查找你的修改的颜色. CListCtrlCl.h如下: #pragma once // CListCtrlCl class CListCtrlCl : pu…
1.NiceSpinner下拉框控件介绍 Android原生的下拉框Spinner基本上可以满足Android开发对于下拉选项的设计需求,但现在越来越流行的下拉框不满足于Android原生提供的下拉框Spinner所提供的设计样式,而改用自定制或者第三方设计的下拉框Spinner.NiceSpinner是一个第三方开源的下拉框Spinner. 2.使用步骤 (1)build.gradle(project)中一段代码替换为如下内容:(android studio工程的标配) buildscript…
方法一 加入你想让WebBrowser控件的渲染模式编程IE8的标准模式, 你可以通过设置注册表FEATURE_BROWSER_EMULATION 来实现. 示例: 注册表中注明当前本机装的IE版本HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer下面有名称为Version的项,其值为IE的版本. svcVersion =10.0.9200.16618 Version =9.10.9200.16618 [(HKEY_CURRENT_US…