随笔分类 - c/c++
C++ 无边框的拖动窗口代码
摘要:按下鼠标时,记录下鼠标在窗体上的坐标, 同时用一个BOOL变量记录下鼠标左键按下的状态弹起左键,则记录状态的布尔变量为FALSE.处理鼠标移动事件,如果左键同时按下,则为鼠标拖动窗体运动,设置窗体新的左上角坐标。view plaincopy to clipboardprint?·········10...
阅读全文
vc++图像显示
摘要:显示资源中的图片 (1)从资源中装入位图 ● 定义位图对象数据成员CBitmap m_Bitmap; ● 调用CBitmap成员函数LoadBitmap(),如m_Bitmap.LoadBitmap(IDB_BITMAP1); ● 传入LoadBitmap的参数是位图在图形编辑器中生成或从位图文件中...
阅读全文
win32 API中GetSystemMetrics函数
摘要:1、SM_ARRANGE:用于说明系统如何安排最小化窗口,根据显示器的不同系统数据可能有所不同。其包含一个起始位置和方向。关于在程序中怎么使用我还没有见个这样的代码。起始位置可为下列值之一:ARW_BOTTOMLEFT:开始在左下角的屏幕(默认值)。ARW_BOTTOMRIGHT:开始在右下角的屏幕...
阅读全文
命令消息传递
摘要:OnCmdMsg是虚拟函数,CFrameWnd覆盖了该函数,当前对象(this所指)是MFC单文档的边框窗口对象。故CFrameWnd的 OnCmdMsg被调用。CFrameWnd::OnCmdMsg在MFC消息发送中占有非常重要的地位,MFC对该函数的缺省实现确定了MFC的标准命 令发送路径: 送...
阅读全文
深入解析MFC -- 句柄与对象的关系
摘要:深入解析MFC--句柄与对象的关系在Windows体系中,很多对 象都是以句柄的形式展示给开发人员的。比如窗口句柄(HWND),绘图设备(HDC)等等。然后大部分的API函数则围绕这些句柄做文章。比如 ShowWindow,SetWindowText,TextOut等等。这些API函数的第一个参数通...
阅读全文
Windows对象、句柄与MFC对象
摘要:windowsmfc编程c目录(?)[-]Windows对象句柄与MFC对象windows对象句柄mfc对象杂谈Windows对象、句柄与MFC对象(2009-04-28 22:11:34)转载标签:windows对象句柄mfc对象杂谈分类:MFC以及Windows编程 Windows对象是以句柄...
阅读全文
兼容位图
摘要:我对兼容位图的理解是:它是为解决绘图统一性而建立的一种机制,和位深无关,你在32位的程序里BITBLT()8位的图不也能行吗?所谓的绘图统一性是这样的。假设在一个界面有多个贴图,如果你不用兼容位图的话,那么你就要贴多次,比如有3幅图,你要贴3次,有5幅图你就要贴5次。如果你仅仅只想画一幅话的话,这也...
阅读全文
DeleteDC ReleaseDC DeleteObject之间的区别
摘要:DeleteDC该函数删除指定的设备上下文环境(DC)。原型:BOOL DeleteDC(HDChdc);参数:hdc:设备上下文环境的句柄。返回值: 成功,返回非零值;失败,返回零。调用GetLastError获取扩展错误信息。说明: 如果一个设备上下文环境的句柄是通过调用GetDC函数得到的,那...
阅读全文
屏幕保存为位图
摘要:可分为两个步骤:一将屏幕保存为位图句柄HBITMAPCopyScreenToBitmap(LPRECTlpRect){HDChScrDC,hMemDC;HBITMAPhBitmap,hOldBitmap;intnX1,nX2,nY1,nY2;intnWidth,nHeight;if(IsRectEm...
阅读全文
SelectObject()函数详解
摘要:SelectObject 把一个对象(位图、画笔、画刷等)选入指定的设备描述表。新的对象代替同一类型的老对象。 HGDIOBJ SelectObject(HDC hdc, // handle to DCHGDIOBJ hgdiobj // handle to object);参数 hdc设备描述表句...
阅读全文
BitBlt介绍
摘要:设备上下文绘图有很多种方法。例如通过创建位图画刷,利用其填充一个区域来实现图像的绘制。此外,还可以使用CDC类的位图函数来输出位图到设备上下文中。BitBlt 用于从原设备中复制位图到目标设备,语法格式如下:BOOLBitBlt(int x,int y,int nWidth,int nHeight,...
阅读全文
SetCapture到底是什么?
摘要:函数功能:该函数在属于当前线程的指定窗口里设置鼠标捕获。一旦窗口捕获了鼠标,所有鼠标输入都针对该窗口,无论光标是否在窗口的边界内。同一时刻只能有一个窗口捕获鼠标。如果鼠标光标在另一个线程创建的窗口上,只有当鼠标键按下时系统才将鼠标输入指向指定的窗口。 函数原型:HWND SetCapture(H...
阅读全文
SetROP2
摘要:一个Windows API SetROP2(int nDrawMode)的使用该函数的主要的作用是根据nDrawMode设置的方式重新设定绘图的方式,下面就不同的nDrawMode值具体解释绘图模式是如何改变的。首先就nDrawMode的取值有以下的情况:R2_BLACK Pixel is alwa...
阅读全文
VC/MFC的HDC,CDC,CWindowDC,CClientDC,CPaintDC详解:
摘要:VC/MFC的HDC,CDC,CWindowDC,CClientDC,CPaintDC详解:首先说一下什么是DC(设备描述表)解:Windows应用程序通过为指定设备(屏幕,打印机等)创建一个设备描述表(Device Context, DC)在DC表示的逻辑意义的“画布”上进行图形的绘制。DC是一种...
阅读全文
MFC——4个基本类中的成员函数介绍
摘要:09121852杜军机械设计及理论1.CMainFrameActivateFrame使框架对用户可视并可用CalcWindowRect每当主框架窗口的客户区尺寸发生变化或控制条的位置发生变化,需要重新排列客户区时,调用该函数Create调用以构造和初始化一个与CFrameWnd对象有关的Window...
阅读全文
Invalidate()这个函数有什么用?
摘要:c++中的这个函数,一会是刷新窗口的作用,一会是使区域无效。我搞不懂这个函数究竟是有什么作用?谢谢赐教。void Invalidate( BOOL bErase = TRUE ); 该函数的作用是使整个窗口客户区无效。窗口的客户区无效意味着需要重绘,例如,如果一个被其它窗口遮住的窗口变成了前台窗口...
阅读全文
C/C++ Sleep(0)
摘要:Sleep(0) 的意义是放弃当前线程执行的时间片,把自身放到等待队列之中。这时其它的线程就会得到时间片进行程序的程序。Sleep(0)能够降低当前线程的执行速 度,比如:现在系统中有100个线程(先假设是线程吧)在执行不同的任务,并且它们执行的优先级都是一样的,并且它们每一次分配的时间片的长度都是...
阅读全文
MFC下的各种字符串类型和相互转换
摘要:MFC下的常用字符串数据类型表示的含义:L:Long 长 P:Point 指针 C:Const 常量 W:Wchar_t 宽字符 T:TCHAR STR:String 字符串在看看MFC下各种数据类型的定义: 1 typedef char *LPSTR; 2 typedef...
阅读全文
LRESULT与wParam和lParam的问题
摘要:在微软vc提供的头文件中有定义在winnt.h中typedef long LONG;在windef.h中typedef LONG LRESULT;所以LRESULT就是long,也就是长整形之所以取名类LRESULT,L=>longresult表示结果,说明这个函数的返回值是某个结果仅此而已WPAR...
阅读全文
gb2312和UTF-8的区别
摘要:GB2312编码大约包含6000多汉字(不包括特殊字符),编码范围为第一位b0-f7,第二位编码范围为a1-fe(第一位为cf时,第二位为a1-d3),计算一下汉字个数为6762个汉字。当然还有其他的字符。包括控制键和其他字符大约7573个字符编码gbk编码是对gb2312编码的扩充,容纳的汉字更多...
阅读全文