11.MFC中关于CListCtrl的解释
A window that displays a collection of items each consisting of
an icon and a label.
12.在单文档中如何实现分割视图窗口:
1)修改App中的InitInstance()函数,把
pDocTemplate = new CSingleDocTemplate(
IDR_MAINFRAME,
RUNTIME_CLASS(CTreeNaviDoc),
RUNTIME_CLASS(CMainFrame), // main SDI frame window
//RUNTIME_CLASS(CTreeNaviView) 把这句屏蔽,改为NULL
NULL);
2)在Frame类中OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)中增加
split.CreateStatic(this,1,2);
split.CreateView(0,0,RUNTIME_CLASS(TreeView),CSize(100,100),pContext);
split.CreateView(0,1,RUNTIME_CLASS(CTreeNaviView),CSize(100,100),pContext);
return CFrameWnd::OnCreateClient(lpcs, pContext);
注:CSplitterWnd split;是在Frame定义的变量.
接下来的操作根据用户进行.
13.关于树状控件的使用:
先看函数TreeView::OnInitialUpdate()中的内容
list.Create(32,32,ILC_COLOR32|ILC_MASK,0,0);
list.Add(::AfxGetApp()->LoadIcon(IDI_ICON1));
list.Add(::AfxGetApp()->LoadIcon(IDI_ICON2));
list.Add(::AfxGetApp()->LoadIcon(IDI_ICON3));
this->GetTreeCtrl().SetImageList(&list,TVSIL_NORMAL);
HTREEITEM tree;
tree=this->GetTreeCtrl().InsertItem("导航1",0,1);
this->GetTreeCtrl().InsertItem("子导航1",2,2,tree);
this->GetTreeCtrl().InsertItem("子导航2",3,3,tree);
this->GetTreeCtrl().InsertItem("子导航3",4,4,tree);
注:CImageList list;是类中定义的变量。
14.关于OnEraseBkgnd(CDC *pDC)函数
这函数主要是实现擦除背景颜色的功能,通过MFC不能添加此函数,必须手动添加。
15.把COLORREF转换为相应的颜色值可调用GetRValue(..),GetGValue(..),GetBValue(..)函数。
16.CWnd::SetWindowRgn的作用Call this member function to set a window's region.
例如在对话框类中的OnInitDialog()函数中增加如下代码:
CRgn wndRgn,rgnTemp;
wndRgn.CreateEllipticRgn(0,0,480,300);
SetWindowRgn((HRGN)wndRgn,true);
就会发现窗口的区域变成了椭圆形了。
17.绘制窗体的标题栏和边框时不能使用GetDC方法获得设备上下文指针,因为GetDC方法获得的是窗体
客户区域的设备上下文指针。应使用GetWindowDC方法获得窗口设备上下文指针。
18.如何判断鼠标不在活动的区域内移动?
在相应的类中添加WM_NCMOUSEMOVE消息的相应函数即可。
19.如何增加工具栏:
if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
{
TRACE0("Failed to create toolbar/n");
return -1; // fail to create
}
m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_wndToolBar);
m_DockBar.Create(this,&m_ToolDlg,IDD_TOOLS_DIALOG);
m_DockBar.SetBarStyle(m_DockBar.GetBarStyle()|CBRS_TOOLTIPS|CBRS_FLYBY|CBRS_SIZE_DYNAMIC);
m_DockBar.EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_DockBar);
以上代码显示了增加工具栏的过程.
20.获取鼠标当前位置:
CPoint pt;
GetCursorPos(&pt);
分享到:
相关推荐
VC++常用数值算法集 一些常用的数学算法
VC++各版本合集,包括VC++2005,VC++2008,VC++2010,VC++2012,VC++2013,VC++2015,VC++2017
VC++皮肤合集,本人从网上收集,用于windows窗体皮肤的更换
VC++ windows运行环境合集,用于生成C++运行程序Exe(mfc等)后,在新电脑上部署运行环境,带注册Dll,实际项目已使用,亲测可用.
VC++串口通信经典源码合集
初学vc++和ASP的一些问题集。里面的问题可能对一些人有益处。还属初浅。
VC++图像处理算法合集
微软常用VC++运行库合集 v2018.06.30(32&64;位)最新版
VC++常见问题集:其中包含了c++编程时可能遇到的问题及解决问题的方法,对初学C++编程的同学很有帮助,可以下载!
顺序存储结构的表、堆栈和队列,链式存储结构的表、堆栈和队列,数组、串和广义表,递归,树和二叉树,图,排序,查找,文件。含有108个完整的程序源代码、可执行文件。
VC++运行库合集
这里包含了若干本VC++实例教程及实例,对VC++学习很有帮助,希望大家能够喜欢。由于文件太大,分为五个部分。part5
顺序存储结构的表、堆栈和队列,链式存储结构的表、堆栈和队列,数组、串和广义表,递归,树和二叉树,图,排序,查找,文件。含有108个完整的程序源代码、可执行文件。
VC++运行库合集单文件安装包就一个exe文件,如果你的电脑缺少运行库可以用这个,默认会装基本所有运行库,离线运行不需要联网操作,亲测好用,能解决很多问题
VC++串口通信串口软件程序18个经典源码合集: VC 串口通信程序.rar VC 读串口话是动态波形,非常好的应用程序,有源码.rar VC++ 串口实现双机互联 包含视窗加代码.rar VC++ 串口通信,可以收发数据,可选用TCPIP 通信....
VC++知识集:收录了若干程序员在进行VC++编程时遇到的实际问题,并给出了详细的讲解。希望对您有所帮助!
VC++允许库合集,解决未能加载文件或程序集CefSharp.Core.dll问题
下载并安装微软VC++2015版运行库 (英文全称:Microsoft Visual C++ 2015 Redistributable Package)
大家好,我是郁金香老师:QQ150330575 欢迎大家参加梅州技术 VC++外挂编程VIP培训班。 在接下来的一段时间将由我和大家一起学习游戏外挂的分析,制作。 课程分四个大章节 初级篇,中级篇,进阶篇,高级篇 初级篇...
VC++编程实用小例子锦集VC++编程实用小例子锦集VC++编程实用小例子锦集