博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  MFC

摘要:窗口区无效是什么意思? 无效就是被其它程序盖住了,盖它的程序关了,它又要显示出来,所以这个函数,可以发消息给被盖住的程序再重新绘制自己。 通俗的说就是擦除你在窗口上画的图,让窗口重新调用OnDraw函数 InvalidateRect只是增加重绘区域,在下次WM_PAINT的时候才生效InvalidateRect函数中的参数TRUE表示系统会在你画之前用背景色将所选区域覆盖一次,默认背景色为白色,可以通过设置BRUSH来改变背景色。Invalidate()之后:...OnPaint()->OnPrepareDC()->OnDraw()所以只是刷新在OnPaint()和OnDraw() 阅读全文

posted @ 2011-02-28 21:57 ccmfc 阅读(1990) 评论(0) 推荐(0)

摘要:用MFC做GDI开发的朋友肯定熟悉CBitmap类,该类封装了HBITMAP对象,简化了关于HBITMAP的API操作,如LoadBitmap方法可直接加载资源中指定ID的图片,但是很多情况下我们需要从文件中加载图片,CBitmap类就没有提供这样的方法了。下面我总结几种我知道的从文件加载图片的方法:1、使用API函数LoadImage,指定LR_LOADFROMFILE标志。如:HBITMAP hBitmap = (HBITMAP) ::LoadImage(NULL, strPath, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE | LR_CREATEDIBSEC 阅读全文

posted @ 2010-10-26 16:21 ccmfc 阅读(2218) 评论(0) 推荐(0)

摘要:回调函数的使用。 如果不想使用窗体的WM_TIMER消息函数处理,可以使用回调函数来取代,增加一个回调函数。 首先,定义一个回调函数,回调函数的定义必须按照如下格式。void CALLBACK TimerProc(HWND hwnd,UINT uMsg,UINT idEvent,DWORD dwTime );我的实现函数如下:void CALLBACK TimerProc(HWND hwnd,UINT uMsg,UINT idEvent,DWORD dwTime ){AfxMessageBox("Timer is running!");//定时器时间到,强出一对话框,表明定时器已经运行。}Se 阅读全文

posted @ 2010-10-06 22:08 ccmfc 阅读(2518) 评论(0) 推荐(0)

摘要:新建一个Win32 Dynamic-Link library工程,取名DLL,选择“An empty DLL project”选项,即创建了一个空的动态链接库工程。为工程添加一个C++源文件:DLL.cpp。举个例子写入两个函数: #define dll _declspec(dllexport) //导出#include "DLL.H"int add(int a,int b){return a+b;}int subtract(int a,int b){return a-b;}为工程添加一个C++头文件:DLL.H:#ifdef dll#else#define dll _declspec(dll 阅读全文

posted @ 2010-10-06 22:02 ccmfc 阅读(256) 评论(0) 推荐(0)

摘要:MFC的消息处理函数1.AfxWndProc() 该函数负责接收消息,找到消息所属的CWnd对象,然后调用AfxCallWndProc2.AfxCallWndProc() 该函数负责保存消息(保存的内容主要是消息标识符和消息参数)供应用程序以后使用,然后调用WindowProc()函数3.WindowProc() 该函数负责发送消息到OnWndMsg()函数,如果未被处理,则调用DefWindowProc()函数4.OnWndMsg() 该函数的功能首先按字节对消息进行排序,对于WM_COMMAND消息,调用OnCommand()消息响应函数,对于WM_NOTIFY消息调用OnNotify() 阅读全文

posted @ 2010-10-05 22:52 ccmfc 阅读(2993) 评论(0) 推荐(0)

摘要:方法1: void CYourDlg::OnLButtonDown(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default SendMessage(WM_NCLBUTTONDOWN,HTCAPTION); CDialog::OnLButtonDown(nFlags, point); }方法2: UINT CYourDlg::OnNcHitTest(CPoint point) { // TODO: Add your 阅读全文

posted @ 2010-10-05 22:51 ccmfc 阅读(230) 评论(0) 推荐(0)

摘要:在对话框中类向导没有像单文档中那样提供了拖放事件(在类向导中找不到自己写了^_^)建立一个对话框工程FileOffer第一步:在CFileOffer类中添加两个事件afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);afx_msg void OnDropFiles(HDROP hDropInfo);第二步:在FileOfferDlg.cpp中添加BEGIN_MESSAGE_MAP(CPlayTestDlg, CDialog)//{{AFX_MSG_MAP(CPlayTestDlg)ON_WM_SYSCOMMAND()ON_WM_PAINT() 阅读全文

posted @ 2010-09-10 08:51 ccmfc 阅读(321) 评论(0) 推荐(0)