
视图文档框架
tobealv
这个作者很懒,什么都没留下…
展开
-
Fail to create empty document错误
MFC程序在执行到ProcessShellCommand处,报"Fail to create empty document"。原因:MainFrm在OnCreate中有如下调用 char file[MAX_PATH]; sprintf(file,"%s\\lib_visual.dat",GetDirPath(PATH_SYS_DIR)); CFile f(file,CFile::modeReadWrite); f.Read(m_bDispLib,sizeof(m...原创 2021-10-11 14:13:45 · 2178 阅读 · 0 评论 -
MFC隐藏主窗口的方法
隐藏基于对话框的MFC应用程序窗口的方法(推荐这个方法,非常好用)很多人可能会将窗口创建出来,然后用一个 ShowWindow(SW_HIDE) 的方法去隐藏窗口,当然这是可以做到隐藏的功能,但是有一点不足的地方就是窗口在隐藏之前会有一下短瞬的闪烁,而以下这种方法可以解决这种问题:在 C***App::InitInstance() 的函数中将以下的这一段注释掉:C***Dlg dl转载 2016-03-03 11:20:20 · 2651 阅读 · 0 评论 -
MFC中运行时类型识别和动态创建类对象
DECLARE_DYNAMICIMPLEMENT_DYNAMICRUNTIME_CLASSDECLARE_DYNCREATECRuntimeClass等相关的宏定义。都是为动态创建类对象。为什么要动态创建类对象呢?在建立一个MFC程序时,MFC要搭起一个框架,这时它需要用到用户定义的类型的信息,比如定义一个CMyMFC程序,它需要使用CMyMFCApp这个类构造对象。但微软在制原创 2012-05-18 16:41:17 · 1334 阅读 · 0 评论 -
CTreeView OnDraw
CListView使用的是CListCtrl,控件的绘制是由CListCtrl自己控制的,包括画图标,报告栏等等。这时OnDraw是不会被调用的。 类似的CTreeView等等都不会调用OnDraw. 此类视图,你应该是通过往列表里添加记录来表达你的数据,而不是 "绘制 "。 通常只有自己直接派生CView时才重载OnDraw。原创 2011-06-11 11:12:00 · 532 阅读 · 0 评论 -
OnPaint和OnDraw的区别
<br />MFC中OnDraw与OnPaint的区别OnPaint是WM_PAINT消息的消息处理函数,在OnPaint中调用OnDraw,一般来说,用户自己的绘图代码应放在OnDraw中。OnPaint() 是CWnd的类成员,负责响应WM_PAINT消息。OnDraw()是CVIEW的成员函数,没有响应消息的功能.当视图变得无效时(包括大小的改变,移动,被遮盖等等),Windows发送WM_PAINT消息。该视图的OnPaint 处理函数通过创建CPaintDC类的DC对象来响应该消息并调转载 2010-11-18 14:44:00 · 585 阅读 · 0 评论 -
CTreeView类的一点用法
<br />1.要在stdafx.h中包含#include <afxcview.h><br />2.不要直接用CTreeView,应该继承一个类,直接用的话没法重写函数什么的<br />3.View类有个OnInitUpdate类似于对话框的OnInitDialog<br />4.树状控件显示加号及竖线的方法<br /> long StyleOld; <br /> StyleOld = GetWindowLong(m_hWnd, GWL_STYLE); <br />原创 2010-11-17 14:31:00 · 1674 阅读 · 0 评论 -
Pie画饼图
1)画的时候是逆时针画,因为圆的正角是逆时针的.(2)Pie的nLeftRect nTopRect nRightRect nBottomRect 参数确定这个饼(一个椭圆,而不是圆)所在的矩形局域,实际上就是确定了原点(3)Pie的nXRadial1 nYRadial1 nXRadial2 nYRadial2 确定一个扇形的两个夹角的位置(4)在数学上,对扇形的计算用弧度,而不是度.弧度是这样规定的2π*弧度=360°,也就是说1°=π/180弧度.通过数学理论知道,扇形的某个点要通过sin,c原创 2010-11-19 13:55:00 · 2932 阅读 · 0 评论 -
客户区坐标与屏幕坐标/逻辑坐标
客户区坐标与屏幕坐标原点都在左上角,不同的是,屏幕坐标的原点在屏幕左上角,客户区坐标的原点在本客户区(比如控件)的左上角.原创 2010-11-19 13:54:00 · 995 阅读 · 0 评论 -
我用CSplitterWnd分割完窗口为什么显示不出来,,,请高手指教
<br />可以运行,但显示的是原来的那个视图, <br /> BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext) <br /> { <br /> // TODO: Add your specialized code here and/or call the base class <br /> m_split.Crea转载 2010-11-07 18:47:00 · 1044 阅读 · 0 评论 -
CSplitterWnd怎么用
<br />我先用AppWizard创建了一个单文档框架,又在CFramWnd中添加了一个CSplitterWnd的对象,然后重载OnCreatClient中调用CreateStadic(tihs,1,2);但build后不能分割,为什么,我是菜鸟,请详细,谢谢。 CSplitterWnd怎么用 相关解决方法:1、<br />不是光CreateStatic就行的,还要建立两个视图才行. CMainFrame::OnCreateClient(...) { m_wndSplitter.CreateStati转载 2010-11-07 18:46:00 · 1164 阅读 · 0 评论 -
带切分的窗口中如何获取某块view的指针
<br /> CTabFormView1 * pView = (CTabFormView1 *)(((CMainFrame*)AfxGetMainWnd())->m_vSplitterWnd.GetPane(0,1));原创 2010-12-16 10:59:00 · 512 阅读 · 0 评论