MFC
文章平均质量分 84
zsddn2003
这个作者很懒,什么都没留下…
展开
-
ListCtrl设置字体,颜色,对齐方式
1.设置ListCtrl属性为Owner Draw Fixed;2.重写DrawItem void CMyListCtrl::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)...{ CDC* pDC = CDC::FromHandle(lpDrawItemStruct->hDC); CRect rect(lpDrawItemS转载 2013-10-09 13:42:49 · 341 阅读 · 0 评论 -
修改单文档主标题
一般情况下,SDI主窗口标题形式为: "文档标题 - 主窗口标题"。参见winfrm.cpp的代码:void CFrameWnd::OnUpdateFrameTitle(BOOL bAddToTitle){ ... UpdateFrameTitleForDocument(pDocument->GetTitle()); ...} void CFrameWnd::Upd转载 2013-10-15 12:33:17 · 235 阅读 · 0 评论 -
带分割视图与未分割视图之间的切换
首先说一下程序的思想,为分割窗口层专门独立创建一个基于CFrameWnd的类,然后在这里面写分割视图的代码,再与其他未分割的视图类进行切换。下面我们来看一下实现的过程:1、创建一个基于CFrameWnd的派生类CSplitterFrame;2、添加要填充分割窗口的视图类和与分割视图切换的视图类;3、为这个派生类重载OnCreateClient函数,构造分割视图m_Splitte转载 2013-10-18 12:43:04 · 258 阅读 · 0 评论 -
CTreeCtrl展开时更换图标
只需要重载OnTvnItemexpanded函数,在函数中进行处理即可。void CTreeCtrlEx::OnTvnItemexpanded(NMHDR *pNMHDR, LRESULT *pResult){ LPNMTREEVIEW pNMTreeView = reinterpret_cast(pNMHDR); TVITEM tviNew = pNMTreeView->itemNew原创 2013-10-17 20:12:53 · 418 阅读 · 0 评论 -
VC图片加载
VC MFC 提供的 API LoadBitmap / LoadImage 类 CBitmap 等都只能操作 BMP 位图,图标。对于其他常用的 JPG / JPEG / GIF / PNG 格式,它无能为力。VC 下怎样才能加载各种非 BMP 格式的图片呢? 下面介绍一种最简单的办法。 用 CImage 类的 Load 函数加载图片,之后用 Detach 取得 HBITMAP 句柄。取转载 2013-10-17 20:42:20 · 231 阅读 · 0 评论 -
单文档二次视窗分割
想编写一个程序实现下图所示的视窗分割,思路是先将视窗分为左右两列,然后将左侧分割为上下两行,右侧分割为左右两列。结果一直未能成功,分割后的效果和第一次分割的效果一样,只显示左右两列的分割。--------------------------------------------------- | |--原创 2013-10-22 11:19:42 · 204 阅读 · 0 评论 -
使用skin++后如何利用GetMenu获取菜单指针
编写了一个单文档程序,并且利用skin++进行了换肤,结果发现在mainFrame中通过GetMenu函数获取到的菜单指针为空,后来经过不断地查找资料获得了在使用skin++后获取主菜单指针的方法:添加WM_INITMENUPOPUP消息响应函数,如下:afx_msg void OnInitMenuPopup( CMenu* pPopupMenu, UINT nInde原创 2013-10-23 13:58:45 · 295 阅读 · 0 评论 -
去除单文档关闭时弹出保存确认对话框
单文档程序关闭时会弹出“是否保存更改”的对话框,屏蔽弹窗的方法是重载Doc类中的SaveModified函数,直接返回true即可。原创 2013-10-23 20:58:34 · 487 阅读 · 0 评论 -
在工具栏上添加文字
在MainFrame的OnCreate函数中添加以下代码: int nIndex = 0; TBBUTTON tb; for (nIndex = tbc.GetButtonCount() - 1; nIndex >= 0; nIndex--) { ZeroMemory(&tb, sizeof(TBBUTTON)); tbc.GetButton(nIndex,原创 2013-11-01 22:13:54 · 218 阅读 · 0 评论 -
MFC中获取MainFrame,Doc,View,App等指针的方法
VC中常用的文档类,视图类,框架类,应用程序类,自定义类中获取其它四个类的方法 A: GET App AfxGetInstanceHandle() AfxGetApp() GET Frame->View->Document SDI AfxGetMainWnd() -> GetActiveView() -> GetDocument() MD转载 2013-10-15 21:25:34 · 215 阅读 · 0 评论 -
VC对话框移植
=============================我是分割线============================今天有同事想拷贝一个对画框资源到另一个工程,我帮了个小忙,于是就有了这篇小文档。我会一步一步的描述操作并截图,以再现整个过程。============================我也是分割线===========================1新建一个文转载 2013-10-15 11:06:18 · 262 阅读 · 0 评论 -
固定单文档的窗口大小
WM_GETMAXMININFO消息; PreCreateWindow; OnSizing; 上面几种方法都可以的,我常用的是WM_GETMAXMININFO消息响应OnGetMinMaxInfo函数调用来实现。 方法一: CWnd::OnGetMinMaxInfo The framework calls this member function whenever转载 2013-10-15 18:15:09 · 236 阅读 · 0 评论 -
设置静态文本字体
在对话框中加入一个静态文本,注意,修改其ID号,不要采用默认的id号 通过向导给该静态文本映射一个CStatic型的成员变量: CStatic m_CaptionCtrl 在对话框类中加入一个成员变量: CFont m_Font; 在OnInitDialog() 中写下: m_Font.Crea转载 2013-10-09 16:38:17 · 148 阅读 · 0 评论 -
CTreeCtrl 添加右键菜单
首先定义右键消息函数: afx_msg void OnRBClick(NMHDR* pNMHDR, LRESULT* pResult); 然后在消息循环中定义消息对应关系: ON_NOTIFY(NM_RCLICK, ID_TREECTRL, OnRbClick) 接着定义消息函数内容: void OnRBClick(NMHDR* p转载 2013-10-09 17:39:53 · 203 阅读 · 0 评论 -
CListCtrl行高设置
方法1:CImageList imageimage.Create(1,height, ILC_COLOR, 0, 0);m_ListCtrl.SetImageList(&m_image, LVSIL_STATE);有CheckBox时m_ListCtrl.SetImageList(&m_image, LVSIL_SMALL);目前只会这一种.【转自:http://blo转载 2013-10-09 13:41:11 · 237 阅读 · 0 评论 -
CListCtrlCl 类 改变CListCtrl及其表头的高度、字体大小
用CListCtrl来显示数据比较方便,有时候我们需要标注某一列或某一个单元格的背景和字体颜色,或者需要改变一下行高和字体大小, CListCtrl要改变这些并不是很方便。本文将介绍如何派生一个类来改变CListCtrl及其表头的高度、字体大小、列背景颜色、单元格背景颜色、 列字体颜色、单元格字体颜色。一、 实现过程 1.表头修改 新建一个MFC类CHeaderCtrlCl转载 2013-10-09 14:52:07 · 464 阅读 · 0 评论 -
使控件背景色为透明
在对话框中重载OnCtlColor函数,然后在OnCtlColor添加: //将静态控件和编辑控件设置为透明if( (nCtlColor == CTLCOLOR_STATIC) || (nCtlColor == CTLCOLOR_EDIT)){ pDC->SetBkMode(TRANSPARENT);//设置为背景透明 return HBRUSH(GetSto原创 2013-10-14 10:42:03 · 175 阅读 · 0 评论 -
编辑框限制十六进制输入
在对应.h文件中加入 BOOL PreTranslateMessage(MSG* pMsg) ;声明。在.cpp文件中从新定义成员函数 BOOL CTestdemoDlg::PreTranslateMessage(MSG* pMsg) { if((WM_CHAR == pMsg->message) && (::GetDlgCtrlID(pMsg->hwnd) ==转载 2013-10-14 16:14:59 · 289 阅读 · 0 评论 -
使用VC6.0实现窗口的任意分割
一、关于CSplitterWnd类 我们在使用CuteFtp或者NetAnt等工具的时候,一般都会被其复杂的界面所吸引,在这些界面中窗口被分割为若干的区域,真正做到了窗口的任意分割。 那么我们自己如何创建类似的界面,也实现窗口的任意的分割呢 ?在VC6.0中这就需要使用到CSplitterWnd类。CSplitterWnd看上去像是一种特殊的框架窗口,每个窗口都被相同的或者不同的视图所填充。当转载 2013-10-15 10:01:59 · 206 阅读 · 0 评论 -
MFC中CMainFrame类CDoc类CView类CApp类之间关系 .
用APPWIZARD这个工具声称的应用程序架构包括了应用程序基本的四个类,分别是:CApp,CMainFrame,CDoc,CView。其中 CApp负责整个应用程序的管理,CDOC类中有一个CAPP的指针,也可以认为应用程序是从CApp开始执行的。CMainFrame是主窗口框架CDoc是应用程序数据来源(文档)主要是用来管理数据,提供保存和加载数据的功能。有关文件的读写操作在C转载 2013-10-15 16:53:21 · 259 阅读 · 0 评论 -
对话框中滚动条
前一段时间编了一个小程序,因要在对话框上设置滚动条,现就对话框上应用滚动条的一点经验给大家作个参考,如有不对之处望各位高手给予指证。 在对话框上要应用滚动条,首先当然是要将对话框的属性vertical scroll选中(在这里只介绍纵向滚动条,横向滚动条与之原理相同)。然后是按Ctlr+w进入classwizard选中对话消息WM_OnVScroll,并添加它的响应函数,接着进入代码编辑区转载 2013-11-06 10:21:48 · 215 阅读 · 0 评论