
mfc
SUN_DRAGON
这个作者很懒,什么都没留下…
展开
-
CMap在用CString做key类型时,ARG_KEY要选LPCTSTR
CMap在用CString做key类型时,ARG_KEY要选LPCTSTR 文章来源:http://blog.youkuaiyun.com/flyingxu/archive/2005/12/26/562852.aspx遇到好几个人说CMap在用CString做key类型时原创 2011-08-25 11:02:20 · 5608 阅读 · 0 评论 -
MFC对多线程编程的支持
MFC中有两类线程,分别称之为工作者线程和用户界面线程。二者的主要区别在于工作者线程没有消息循环,而用户界面线程有自己的消息队列和消息循环。工作者线程没有消息机制,通常用来执行后台计算和维护任务,如冗长的计算过程,打印机的后台打印等。用户界面线程一般用于处理独立于其他线程执行之外的用户输入,响应用户及系统所产生的事件和消息等。但对于Win32的API编程而言,这两种线程是没有区别的,它们都只需转载 2013-03-08 13:57:48 · 935 阅读 · 0 评论 -
CScrollView中的坐标问题
在调用派生类的OnDraw成员函数之前,CScrollViewCScrollViewCScrollViewCScrollView自动调整传递给OnDraw的 CPaintDC设备环境对象的视口原点。 为了为滚动窗口调整视口原点,CScrollView重载CView::OnPrepareDC。这种调整对 于CScrollView传递给OnDraw的CPaintDC设备环境来说是自动的原创 2012-11-21 21:01:00 · 1654 阅读 · 0 评论 -
用线程实现简单的定时器
定时器是在某个时间到了执行一次代码,他的执行与否完全取决于时间,而线程os回给他分配内存空间后,他会完全向主线程一样去线程队列中等待,因此,定时器是抢占式的执行,只要时间到了,由于很高的优先级,会立马执行,影响程序执行速度,而线程则会和其他线程进入排队等待。 两者用途也不同,线程是为了并发执行,实现程序的同步,而定时器只是做一些必须定期做的工作,如刷新窗口之类的。但如果用定时器来原创 2012-11-20 22:32:05 · 4592 阅读 · 1 评论 -
在工具条显示时间(并不是真正实现)
最近做的东西,需要在工具条显示时间,查了很多资料,大多都是在状态栏实现的。 最终,也没有真正的实现,只是在相应的位置输出文字。 在CMainFrame类中 CTime time;time = CTime::GetCurrentTime();CString s = time.Format(_T("%H:%M:%S"));CRect rect;GetClientRect原创 2012-11-20 22:10:29 · 775 阅读 · 0 评论 -
mfc 拆分窗口,SetColumnInfo失败
在OnCreateClient函数中创建窗口动态拆分,在OnSzie中来改变窗口大小经调试,找到:m_pColInfo[col].nIdealSize = cxIdeal;其中,m_pColInfo指针指向0x0000000000,这说明指针位置不对,可能是在未调用OnCreateClient之前,调用了OnSize而导致访问位置错误。因此,可以设置一个bool变量,在OnCr原创 2012-11-19 21:07:31 · 2555 阅读 · 1 评论 -
动态创建视图时候 AfxCheckDialogTemplate执行出错
2009-08-28 15:37 动态创建视图时候 AfxCheckDialogTemplate执行出错在mfc的sdi架构中,准备多做几个视图,试图类继承自formview,但在动态创建视图的时候出了错误,AfxCheckDialogTemplate执行出错。后来通过搜索发现cformview类关联对话框时候,资源必须具备child属性。1.CFormView类关联的对转载 2012-11-19 19:55:50 · 4452 阅读 · 1 评论 -
取消窗口的记忆功能
1)第一次在CXXXApp::ExitInstance() 加入CleanState(),运行一次接着注释掉2) 再在OnInitInstance加入m_bSaveState=FALSE转载 2012-11-20 09:34:46 · 954 阅读 · 0 评论 -
关于GDI坐标理解的几篇好文章一
The GDI Coordinate SystemsThe Default Coordinate System When drawing on Microsoft Windows, the coordinates of the drawing area are located on the up转载 2012-11-28 23:34:23 · 1052 阅读 · 0 评论 -
在CMFCToolbar中添加控件
1、首先在toolbar中定义一个button,如:ID_SLIDER2、响应消息ON_REGISTERED_MESSAGE(AFX_WM_RESETTOOLBAR, OnToolBarReset)3、在函数OnToolBarReset添加如下代码:CRect rect; int index = m_myToolBar.CommandToIndex(ID_S原创 2012-11-28 21:14:47 · 4853 阅读 · 5 评论 -
常用的 <crtdbg.h>
常用的 1、在调试状态下让win程在输出窗口中显示调试信息,可以用_RPTn 宏n为显示参数比如_RPT0(_CRT_WARN,"text"); _RPT1(_CRT_WARN,"%d", iTest); _RPT2(_CRT_WARN,"%d,%f", iTest, fTest);....依次类推,详细见msdn2、侦测内存泄露用_CrtSetDbgFlag函数转载 2012-10-25 10:40:13 · 889 阅读 · 0 评论 -
动态链接库与静态链接库
动态链接库静态链接库生成的文件不同*.dll *.lib*.lib文件功能lib是编译链接时需要,dll是运行时需要的。如果要完成代码编译,有lib就行;如果使动态链接的程序运行起来,有dll就够了。lib文件必须在编译器就连接在应用程序;dll在运行期才会调用。如果只有lib文件,则这个礼拜是静态编译出来的,索引和实现在其中。原创 2012-03-14 14:32:44 · 834 阅读 · 0 评论 -
MFC WinSocket编程
MFC WinSocket编程 MFC提供了两个高级类:CAsyncSocket和CSocket。 CAsyncSocket对winsocket API进行了一对一的包装,是相对低级的一个类,需要编程者知道更多的细节。 CSocket继承了CAsyncSocket,并扩充了大量的高级功能。主要通过和CSocketFile和CArchive两个文档类相结合,转载 2013-03-08 14:23:12 · 3004 阅读 · 0 评论