图形图像处理
文章平均质量分 62
scq2099yt
欢迎访问我的个人网站: http://www.joyvc.cn。
展开
-
DPtoLP和LPtoDP && ScreenToClient和ClientToScreen
设备坐标(Device Coordinate)又称为物理坐标(Physical Coordinate),是指输出设备上的坐标。通常将屏幕上的设备坐标称为屏幕坐标。设备坐标用对象距离窗口左上角的水平距离和垂直距离来指定对象的位置,是以像素为单位来表示的,设备坐标的X轴向右为正,Y轴向下为正,坐标原点位于窗口的左上角。 逻辑坐标(Logical Coordinate)是系统用转载 2007-05-18 15:42:00 · 919 阅读 · 0 评论 -
关于位图按钮的两个问题
关于位图按钮的两个问题:1、当给按钮装载背景图片并且设置Owner Draw属性后,调试出现:“User breakpoint called from code at 0x77f9f9df”的错误 。解决方法:当按钮选择Owner Draw属性后,需要强制重载OnDrawItem,进行自绘,否则就会出现错误。2、当点击按钮时,按钮没有状态反应。解决方法:需要在OnDrawI原创 2008-04-04 18:04:00 · 594 阅读 · 0 评论 -
VC++系统托盘编程
在windows系统中,经常见到有的程序在关闭或最小化的时候,成为系统的托盘。这是怎么实现的呢?经过一番学习我自己也实现了一个带有托盘功能的程序,核心代码如下:(1)在应用程序类C*App::InitInstance()函数中加入如下代码: NOTIFYICONDATA tnd; tnd.cb转载 2008-04-08 10:57:00 · 1047 阅读 · 0 评论 -
鼠标在按钮上移动、按下或者弹起时显示按钮功能提示文本
以VC6.0对话框应用程序成为例,在按钮上显示功能提示文本:“北京2008”。在CXXXDlg.h文件中定义:public: CToolTipCtrl m_openToolTip; 在CXXXDlg.cpp的OnInitDialog()中初始化: m_openToolTip.Create(this); m_openToolTip.AddTool( GetDlgItem(IDC原创 2008-04-10 16:08:00 · 1068 阅读 · 0 评论 -
VC++实现程序全屏显示
全屏显示在许多应用程序中都得到了应用。实现此功能的原理很简单:CWnd类中MoveWindow()函数可以按照指定参数来显示窗口。在执行窗口最大化以前利用GetWindowPlacement()函数先把窗口的当前位置保存在一个变量中,执行窗口最大化后可以通过SetWindowPlacement()函数调用此变量来恢复窗口。利用RepositionBars()函数取得应用程序客户区不被工具条掩盖的大转载 2008-04-08 10:55:00 · 2102 阅读 · 0 评论 -
VC++实现位图显示透明效果
1 网页播放的视频代码 第一种是通过调用window media player进行播放诸如:wmv,asf等格式文件 第二种是通过调用replayer进行播放诸如:rm,ram等格式文件 第三种是通过调用flashplayer进行播放:swf类的flash文档,分别如下: 一:window media player的方法: 二:realplay的方法: 播放框:转载 2008-04-07 18:04:00 · 847 阅读 · 0 评论 -
VC++大数据量绘图时无闪烁刷屏技术实现
引言 当我们需要在用户区显示一些图形时,先把图形在客户区画上,虽然已经画好但此时我们还无法看到,还要通过程序主动地刷新用户区,强制Windows发送一条WM_PAINT消息,这将引发视类OnDraw函数简单地将所有的图形对象重画,这样才完成了图形的显示工作,但在刷新的同时会引起较明显的闪烁尤其是当画面面积较大、图像元素过多时尤为明显甚至达到无法正常工作的地步。因此,我们需要做相应的处理。本转载 2008-04-14 15:43:00 · 814 阅读 · 0 评论 -
VC无闪烁刷屏技术的实现
在实现绘图的过程中,显示的图形总是会闪烁,笔者曾经被这个问题折磨了好久,通过向高手请教,搜索资料,问题基本解决,现将文档整理出来以供大家参考.1.显示的图形为什么会闪烁 我们的绘图过程大多放在OnDraw或者OnPaint函数中,OnDraw在进行屏幕显示时是由OnPaint进行调用的。当窗口由于任何原因需要重绘时,总是先用背景色将显示区清除,然后才调用OnPaint,而背景色转载 2008-04-14 15:45:00 · 743 阅读 · 0 评论 -
VC无闪烁刷屏技术的实现---经验总结之防止窗口闪烁的方法
也许我们都碰到过这种情况,当你想重画某个窗口的时候,或你需要每隔一段时间要进行重画窗口,窗口会不停的闪烁。那么如何消除闪烁呢?借鉴了别人的经验,自己也总结一下,现将总结的几种方法介绍一下,供大家参考。1、将Invalidate()替换为InvalidateRect()。 因为Invalidate()会导致整个窗口的图象重画,需要的时间比较长,而InvalidateRect转载 2008-04-14 15:47:00 · 973 阅读 · 0 评论 -
如何个性控制对话框上的控件显示
如何个性控制对话框上的控件显示?涉及到这方面的知识实在太多,限于个人能力,我也不能在这里非常全面的介绍了,本文主要介绍日常最常用的几个功能:控件背景色设定、控件字体显示、控件字色显示、控件的亮/灰显示。而这里的控件,也主要就介绍静态控件、文本框控件、check控件,按钮控件等。 众所周知,在VC中做界面几乎是所有工具中最艰难的一种(当然,如果是骨灰级的高手,那就变成“VC是做界面最转载 2008-05-26 16:31:00 · 855 阅读 · 0 评论 -
关于在SetWindowText时如何改变字体的颜色等相关信息
重载OnCtlColor()消息,在消息函数中判断ID,然后就可以进行相关信息的设置了,下面以Static文本控件为例:HBRUSH CXXXDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); // TODO: Change原创 2008-04-02 16:00:00 · 1805 阅读 · 0 评论 -
关于TextOut输出的字符串透明的问题
当用TextOut在客户区输出字符串的时候,字符串是有背景颜色的,默认情况下跟背景颜色一致,因此我们一般看不到这个背景色。但是,当窗体客户区设置了背景色时,比如:用位图作为对话框背景,就能看到字符串的背景色了。按照以下方法可以去掉这个背景色:获得设备上下文,然后将背景模式设置成透明即可,实例代码如下:CWnd* pWnd=GetDlgItem(IDC_STATIC_DRAW);原创 2008-04-04 17:36:00 · 1397 阅读 · 0 评论 -
关于Static控件背景透明时文本覆盖重影的问题
通过映射OnCtlColor消息,而后在该函数中使用pDC->SetBkMode(TRANSPARENT)使Static控件背景透明时会出现:文本覆盖重影的问题,当改变控件的文本就会发生新文本与旧文本重叠的现象。可以通过以下方式使Static控件文本在透明状态下改变时不会产生文本重叠问题:1、由于Static控件的背景已经是透明的了,那么旧文本应该是画在Static控件的父窗口上的。2、在给S原创 2008-04-02 16:16:00 · 1320 阅读 · 0 评论 -
VC防止窗口和控件闪烁的方法
1、将Invalidate()替换为InvalidateRect()Invalidate()会导致整个窗口的图象重画,需要的时间比较长,而InvalidateRect()仅仅重画Rect区域内的内容,所以所需时间 会少一些。虫虫以前很懒,经常为一小块区域的重画就调用Invalidate(),不愿意自己去计算需要重画的Rect,但是事实是,如果你确实需要改善 闪烁的情况,计算一个Rect所用的时间比转载 2008-03-13 14:35:00 · 612 阅读 · 0 评论 -
图像平滑滚动效果的VC实现
前言: 在图像的编程中,经常会遇到这样一种情况,在有限的区域中显示了一幅大图,这时要浏览图像的各个部分,这就需要用到图像的滚动。关于它的实现,许多书都有提及,但其中的关键点和难点,即拖动中的刷新和闪烁问题,却讲述的不多,这也是我写本文的目的所在,下面我将详细分析实现方法。 实现效果及实现方法: 在图像区域中按下鼠标左键,可拖动图像在某一有限区域中任意滚动。 方法为 :拖动时计算上转载 2008-03-13 14:43:00 · 650 阅读 · 0 评论 -
VC对话框全屏显示及相应控件位置改变
一、简单对话框全屏显示方法在OnInitDialog()中任意加入:1、ModifyStyle(WS_CAPTION,0,0); //如果不想去掉标题栏,去掉该句。 SendMessage(WM_SYSCOMMAND,SC_MAXIMIZE,0); 2、ShowWindow(SW_SHOWMAXIMIZED); 二、复杂一点的对话框全屏显示方法,随屏幕的分辩率而调节void原创 2008-03-14 16:31:00 · 1680 阅读 · 0 评论 -
色彩RGB 值对照表
色 彩 RGB 值 对 照 表colorredgreenblueHexadecimal tripletexampleAliceblue240248255f0f8ff Antiquewhite转载 2008-03-27 17:18:00 · 1313 阅读 · 0 评论 -
VC的一些小技巧
1、刷新窗口 RedrawWindow(NULL, NULL,RDW_INVALIDATE | RDW_ERASE ); 2、设置对话框背景颜色在InitInstance函数(CChatAPP类中)中的m_pMainWnd = &dlg;下面加入SetDialogBkColor(RGB(240,128,128),RGB(0,0,0));RGB(240,128,128)为转载 2008-03-27 17:22:00 · 835 阅读 · 0 评论 -
VC为按钮控件添加图片的方法
第一种:Button属性页里Style的Bitmap点上CBitmap Bitmap;Bitmap.LoadBitmap(IDB_BITMAP1);HBITMAP hBitmap=(HBITMAP)Bitmap.Detach();CButton *pButton=(CButton*)GetDlgItem(IDCANCEL);pButton->SetBitmap(hBitmap);感觉效果不是很好。转载 2008-03-28 12:05:00 · 4987 阅读 · 1 评论 -
基于对话框的应用程序添加启动画面
1、利用组件库中的Splash Screen组件生成Splash1.cpp 和Splash1.h 这两个文件(也就是基于框架类的应用程序添加启动画面的步骤)(1)用Photoshop等制作启动画面图像,保存为bmp格式。 (2)用Appwizard建一个基于单文档的工程Splash。 (3)在资源中插入位图资源 打开VC++的资源编辑器,用鼠标右键单击Resourc转载 2008-03-27 17:16:00 · 1456 阅读 · 0 评论 -
用VC给对话框添加背景图片
1、把你的图包含到程序的“Bitmap资源”里,提示说该资源使用了大于256色的调色板,在VC里无法编辑等等,点确定就可以 2、定位到 void CXXXDlg::OnPaint(),在if()...else()中的else()下添加如下代码 else { //CDialog::OnPaint();//要禁止这个调用转载 2008-03-27 17:20:00 · 1383 阅读 · 0 评论 -
如何使STATIC控件的背景透明以及动态改变控件文本内容时闪烁的问题
一、用VC编写基于对话框的应用程序,用BMP位图作为对话框背景,对话框上的STATIC静态文本框,可以用以下消息函数使文本框的文字背景透明: HBRUSH CXXXDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); //原创 2008-04-01 16:41:00 · 2496 阅读 · 1 评论 -
把BMP文件分析到字节的细度
位图文档 BMP文件由文件头、位图信息头、颜色信息和图形数据四部分组成。 一.理论基础1.typedef struct tagBITMAP { LONG bmType; LONG bmWidth; LONG bmHeight; LONG bmWidthBytes;转载 2008-05-26 16:35:00 · 955 阅读 · 0 评论