
MFC
baidu_28053127
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++中struct与class的区别
很多初学者或者是想当然,或者是被网上的一些错误信息给误导,面试中问到class和struct区别时经常会说class可以继承而struct不可以继承,这是完全错误的。但在C#中,class与struct确实有这点区别(当然不止这一点)。其实,在C++中,这两个关键词并没有大的区别,仅在细节上有些不同。1。 字面上的区别在字面上struct是structure的缩写,通常叫做“结构体”,转载 2015-06-15 14:35:57 · 554 阅读 · 1 评论 -
CBitmap,HBitmap,Bitmap区别及联系
HBITMAP是bitmap的指针,msdn中如是:Handle to a bitmap.typedef HANDLE HBITMAP;CBitmap是mfc中封装bitmap的类;msdn中:Encapsulates(囊括) a Windows graphics device interface (GDI) bitmap and provides member functions转载 2015-05-19 10:52:11 · 333 阅读 · 0 评论 -
SetWindowText
Windows API宏,在WinUser.h中根据是否已定义Unicode被分别定义为SetWindowTextW和SetWindowTextA,这两个函数改变指定窗口的标题栏的文本内容(如果窗口有标题栏)。如果指定窗口是一个控件,则改变控件的文本内容。然而,SetWindowText函数不改变在其他应用程序中的控件的文本内容语法编辑BOOLSetWindowText转载 2015-06-02 19:27:57 · 838 阅读 · 0 评论 -
GetClientRect
获得客户区也就是显示区矩形(除掉框架,标题栏,菜单栏,工具栏,滚动栏,状态栏等),坐标采用逻辑坐标。默认采用MM_TEXT映射方式,向右增加,向下增加,缩放比例1:1;CRect rect;this->GetClientRect(&rect); //即可获得相关联的HWND的显示区.转载 2015-06-01 16:58:30 · 552 阅读 · 0 评论 -
RepositionBars的用法和参数的意义(引用别人的)
MFC窗口位置管理详细分析及实例 在一般用MFC编写的程序的窗口客户区中,可能有好几个子窗口(具有WM_CHILD风格的窗口)。上边是工具栏,中间是视图窗口,下边是状态栏。三个窗口在框架的客户区里和平共处,互不重叠。主框架窗口的尺寸改变了,别的子窗口都能及时调整自己的尺寸以便保持相互位置关系不变,例如状态条窗口总能保持在主框架客户区底部,并且其宽度总能和主框架客户区宽度一致。工具栏窗口总能停靠在主转载 2015-06-01 16:52:00 · 389 阅读 · 0 评论 -
KillTimer
Windows API函数。该函数移除先前用SetTimer设置的定时器。在定时器使用完毕后移除定时器时使用。转载 2015-06-02 19:30:02 · 339 阅读 · 0 评论 -
CPaintDC 、CWindowDC、 CClientDC、 CDC
关系图:一句话概括:CPaintDC 无效区dc, 相当于BeginPaint, EndPaint CClientDC 客户区dc, 相当于GetDC, ReleaseDC CWindowDC 整窗口dc, 相当于GetWindowDC, ReleaseDC CDC转载 2015-05-18 22:12:07 · 441 阅读 · 0 评论 -
时间
typedef struct _SYSTEMTIME WORD wYear; WORD wMonth; WORD wDayOfWeek; WORD wDay; WORD wHour; WORD wMinute; 1.CTime类获取当前时间CTimecurTime;curTime = CTime::GetCurrentTime();转载 2015-05-18 20:41:16 · 303 阅读 · 0 评论 -
Invalidate()
void Invalidate( BOOL bErase = TRUE );该函数的作用是使整个窗口客户区无效,此时就需要重绘,这个就会自动调用窗口类的OnPaint函数,OnPaint负责重绘窗口。视图类中就调用OnDraw函数,实际的重绘工作由OnPaint或者OnDraw来完成。这个函数有一个bool型参数,默认为true,此时会首先将整个窗口的内容清除,然后使用OnPaint函数绘制内容转载 2015-05-18 10:47:59 · 379 阅读 · 0 评论 -
PlaySound
BOOL PlaySound(LPCSTR pszSound, HMODULE hwnd,DWORD fdwSound);参数pszSound是指定了要播放声音的字符串,该参数可以是WAVE文件的名字,或是WAV资源的名字,或是内存中声音数据的指针,或是在系统注册表WIN.INI中定义的系统事件声音。如果该参数为NULL则停止正在播放的声音。参数hwnd转载 2015-05-19 14:58:24 · 658 阅读 · 0 评论 -
MFC 中的CDC类
CDC类定义的是设备上下文对象的类。CDC对象提供处理显示器或打印机等设备上下文的成员函数,以及处理与窗口客户区对应的显示上下文的成员。通过CDC对象的成员函数进行所有的绘图。类对设备上下文操作提供了成员函数,处理绘图工具。安全型图形设备接口(GDI)对象收集,以及处理颜色和调色板。它还为获取和设置绘图属性、映射,处理视点、窗口扩展、转换坐标,处理区域、剪贴、绘制直线及绘制简单椭圆转载 2015-05-19 10:44:14 · 1104 阅读 · 0 评论 -
MFC 鼠标去留
题目不醒目,特解 win32编程中,有两个消息比较特别,WM_MOUSEHOVER和WM_MOUSELEAVE。系统不会想应用程序发送这两个消息,MSDN中规定要用到TrackMouseEvent方法来向程序投递这两个消息。去留分析 去WM_MOUSELEAVE,留WM_MOUSEHOVER。打个比方,调用TrackMouseEvent就向在消息队列中设置了一个哨兵,当转载 2015-05-25 14:33:08 · 365 阅读 · 0 评论 -
MFC中.和->的区别
如果该变量是一个类的对象,则用“.”调用对象的方法或属性,如果该变量是一个类的对象的指针,则用“->”调用对象指针方法或属性。转载 2015-05-26 15:18:06 · 419 阅读 · 0 评论 -
#ifdef,#else,#endif和#ifndef的用法
#ifdef的用法灵活使用#ifdef指示符,我们可以区隔一些与特定头文件、程序库和其他文件版本有关的代码。代码举例:新建define.cpp文件#include "iostream.h"int main(){#ifdef DEBUG cout#endif return 0;}运行结果为:Press any key to contin转载 2015-05-25 10:17:51 · 453 阅读 · 0 评论 -
OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)的用法
在MFC类库提供了CWnd::OnCtlColor函数,在工作框架的子窗口被重画时将调用该成员函数.因此可以重载WM_CTLCOLOR消息的响应函数.此函数的原型:afx_msg HBRUSH OnCtlColor(CDC *pDC,CWnd *pWnd,UINT nCtlColor);参数nCtlColor用于指定控件的类型,可以是:.CTLCOLOR_BTN 按钮控件.CT转载 2015-05-26 09:10:02 · 1662 阅读 · 0 评论 -
DeleteObject()
DeleteObject() 函数功能:函数删除一个逻辑笔、画笔、字体、位图、区域或者调色板,释放所有与该对象有关的系统资源,在对象被删除之后,指定的句柄失效。是windows GDI里面的函数。转载 2015-05-25 16:50:04 · 918 阅读 · 0 评论 -
DeflateRect
void DeflateRect(int x,int y);void DeflateRect(SIZE size);void DeflateRect(LPCRECT lpRect);void DeflateRect(int l,int t,int r,int b);说明:通过朝CRect的中心移动边以缩小CRect。参数:x 指定缩小CRec转载 2015-05-23 09:40:26 · 406 阅读 · 0 评论 -
AfxMessageBox和MessageBox区别
如果用MFC的话,请尽量使用afxmessagebox,因为这个全局的对话框最安全,也最方便。 但是在WIN32 SDK的情况下只能使用MESSAGEBOX。MessageBox()是Win32API函数.后者是mfc中的全局函数.在MFC中能用MessageBox()的地方都能用AfxMessageBox().afxmessagebox更多的时候是用于调试AfxMes转载 2015-06-05 10:24:58 · 410 阅读 · 0 评论 -
编辑框控件的两种成员变量(CEdit控件类型与CString 值类型之间的关联问题)
1. edit控件---与---控件ID直接操作由id—转化—句柄—类指针((CEdit*)GetDlgItem(IDC_EDITID))->SetWindowText(str);//注意括号的位置括法2. edit控件---与---Cstring类型如果只是简单的获取 edit控件内容,或设置简单的内容 建议使用cstring类型成员变量。Upda转载 2015-06-05 09:36:26 · 9903 阅读 · 0 评论 -
自定义消息的步骤
(一)先在头文件中定义自己消息的ID,如 #define WM_MY_FIRST_MESSAGE (WM_USER + 0x001)(二)再声明自己的消息处理函数:afx_msg void OnMyFirstMessage();(三)在CPP文件中添加消息映射宏:在BEGIN_MESSAGE_MAP 和END_MESSAGE_MAP代码块中添加消息映射宏ON_MESSAGE转载 2015-06-04 15:29:08 · 429 阅读 · 0 评论 -
c++中BOOL和bool的区别
一:在网上找到了BOOL和bool的区别:1、类型不同BOOL为int型bool为布尔型2、长度不同bool只有一个字节BOOL长度视实际环境来定,一般可认为是4个字节3、取值不同bool取值false和true,是0和1的区别BOOL取值FALSE和TRUE,是0和非0的区别二:bool是标准C++数据类型,转载 2015-05-29 10:43:19 · 655 阅读 · 0 评论 -
SetEvent,ResetEvent
BOOL CEvent::SetEvent(); 将 CEvent 类对象的状态设置为有信号状态。如果事件是人工事件,则 CEvent 类对象保持为有信号状态,直到调用成员函数ResetEvent()将 其重新设为无信号状态时为止。如果CEvent 类对象为自动事件,则在SetEvent()将事件设置为有信号状态后,CEvent 类对象由系统自动重置为无信号状态。如果该函数执行成转载 2015-05-29 10:17:39 · 716 阅读 · 0 评论 -
hInstResource = AfxFindResourceHandle(MAKEINTRESOURCE(nBitmapNormal), RT_BITMAP);
AfxFindResourceHandleUse AfxFindResourceHandle to walk the resource chain and locate a specific resource by resource ID and resource type.HINSTANCE AFXAPI AfxFindRe转载 2015-05-20 10:33:18 · 532 阅读 · 0 评论 -
LoadImage
1简介编辑函数功能:该函数装载图标,光标,或位图。函数原型:HANDLE LoadImage(HINSTANCE hinst,LPCTSTR lpszName,UINT uType,int cxDesired,int cyDesired,UINT fuLoad);2参数编辑hinst:处理包含被装载图像模块转载 2015-05-20 11:09:38 · 749 阅读 · 0 评论 -
利用DrawDragRect画出类似截图的功能
CDC::DrawDragRectvoid DrawDragRect( LPCRECT lpRect, SIZE size, LPCRECT lpRectLast, SIZE sizeLast, CBrush* pBrush = NULL, CBrush* pBrushLast = NULL );参数转载 2015-05-14 20:22:18 · 1618 阅读 · 0 评论 -
MFC ASSERT 详解
ASSERT宏的参数是一个逻辑表达式,在程序运行过程中,若该逻辑表达式为真,则不会发生任何动作;若此表达式为假,则系统弹出一个对话框警告你, 并停止程序的执行。同时要求你作出选择:取消、忽略和重试。若你选择取消,则系统将停止程序的运行;若你选择忽略,则系统将忽略该错误,并继续执行程序; 若你选择重试,则系统将重新计算该表达式,并激活调试器。同TRACE宏一样,ASSERT宏只对Debug版转载 2015-05-16 15:45:14 · 2619 阅读 · 0 评论 -
CreateCompatibleDC
其实,双缓冲只是名字叫的好听罢了,总体也没什么技术含量,在这里举个小例子就可以了: 利用双缓冲绘图与普通绘图的差距大家都知道包括windows桌面在内我们看到的一切都是系统画上去的,windows桌面就相当于一个黑板; 《1》普通绘图就是直接在我们看得到的黑板上绘图《2》双缓冲就是先转载 2015-05-15 14:10:34 · 378 阅读 · 0 评论 -
调试技巧MFC中TRACE宏的使用
1.在MFC中加入TRACE语句2.在TOOLS->MFC TRACER中选择 “ENABLE TRACING”点击OK3.进行调试运行,GO(F5)(特别注意:不是执行‘!’以前之所以不能看到TRACE内容,是因为不是调试执行,而是‘!’了,切记,切记)4.然后就会在OUTPUT中的DEBUG窗口中看到TRACE内容了,调试执行会自动从BUILD窗口跳到DEBUG窗口,在转载 2015-05-13 15:06:05 · 398 阅读 · 0 评论 -
mfc绘图
1 几何对象的结构和类为了使用绘图函数,应该先了解绘图所用到的几种表示几何对象的结构和类。这些结构和类分别定义在头文件windef.h和afxwin.h中。1.点1)点结构POINT点数据结构POINT用来表示一点的x、y坐标:typedef struct tagPOINT { LONG x; LONG y;} POINT转载 2015-05-15 15:57:11 · 860 阅读 · 0 评论 -
包含头文件有先后顺序吗?
一般都要把#include "stdafx.h"这个预编译头文件放在最前面。如果头文件之间如果有包含关系的话,顺序不一样可能会出错转载 2015-05-12 15:30:19 · 1634 阅读 · 0 评论 -
GetProcAddress用法
函数功能描述:GetProcAddress函数检索指定的动态链接库(DLL)中的输出库函数地址。函数原型:FARPROC GetProcAddress( HMODULE hModule, // DLL模块句柄 LPCSTR lpProcName // 函数名);参数:hModule [in] 包含此函数的DLL模块的句柄。LoadLibra转载 2015-05-12 14:26:53 · 3127 阅读 · 0 评论 -
BitBlt()函数
函数功能:该函数对指定的源设备环境区域中的像素进行位块(bit_block)转换,以传送到目标设备环境。 函数原型:BOOL BitBlt(HDC hdcDest,int nXDest,int nYDest,int nWidth,int nHeight,HDC hdcSrc,int nXSrc,int nYSrc,DWORD dwRop); 参数: hdcDest:指转载 2015-05-15 14:28:01 · 709 阅读 · 0 评论 -
InflateRect();Draw3dRect();GetSysColor()
InflateRectInflateRect函数增大或减小指定矩形的宽和高。InflateRect函数在矩形的左和右增加dx,在矩形的上下增加dy。 dx和dy参数是有符号值。正数增加宽和高,负数减小。BOOL InflateRect(LPRECT lprc, //矩形int dx, // amount to adjust widthint dy // am转载 2015-05-15 15:26:01 · 875 阅读 · 0 评论 -
CloseHandle
if (m_hComm!=NULL){CloseHandle(m_hComm);//此处为关闭其内核对象,句柄仍存在m_hComm=NULL;}原创 2015-05-29 10:21:19 · 394 阅读 · 0 评论 -
API实现串口通讯
API实现串口通讯第一节 实现串口通讯的函数及串口编程简介 API函数不仅提供了打开和读写通讯端口的操作方法,还提供了名目繁多的函数以支持对串行通讯的各种操作。常用函数及作用下:函数名 作用CreateFile 打开串口GetCommState 检测串口设置SetCommState 设置串口BuilderCommDCB 用字符串中的值来填充设备控制块GetCommTimeouts 检测通信超时转载 2015-05-28 16:38:07 · 954 阅读 · 0 评论 -
CreateEvent
函数功能描述:创建或打开一个命名的或无名的事件对象函数原型:HANDLE CreateEvent( LPSECURITY_ATTRIBUTES lpEventAttributes, // 安全属性 BOOL bManualReset, // 复位方式 BOOL bInitialState, // 初始状态 LPCTSTR lpNa转载 2015-05-28 16:27:06 · 419 阅读 · 0 评论 -
memset函数
头文件:/函数原型:void * memset ( void * ptr, int value, size_t num );Fill block of memorySets the first num bytes of the block of memory pointed by ptr to the specified value (interpreted as转载 2015-05-28 16:20:39 · 327 阅读 · 0 评论 -
COMSTAT
typedef struct _COMSTAT { // cst DWORD fCtsHold : 1; // Tx waiting for CTS signal DWORD fDsrHold : 1; // Tx waiting for DSR signal DWORD fRlsdHold : 1; // Tx waiting for RLSD sign转载 2015-05-28 16:06:08 · 1229 阅读 · 0 评论 -
DrawText
DrawText与MessageBox区别与联系函数原型int DrawText(HDC hDC, // 设备描述表句柄LPCTSTR lpString, // 将要绘制的字符串int nCount, // 字符串的长度LPRECT lpRect, // 指向矩形结构RECT的指针UINT uFormat // 正文的绘制选项);转载 2015-05-21 20:18:25 · 392 阅读 · 0 评论 -
SetBkMode(TRANSPARENT)
设置绘图dc的背景模式为透明模式 背景模式,VC6下面有三种:/* Background Modes */#define TRANSPARENT 1//透明#define OPAQUE 2//不透明#define BKMODE_LAST 2//上一模式,其实就是不透明转载 2015-05-18 09:10:41 · 1756 阅读 · 0 评论