
MFC
lovey_carolin
这个作者很懒,什么都没留下…
展开
-
Setting the Background Image for a List Control
1、新建一个对话框工程,在对话框中添加一个list控件,ID:IDC_LIST1。打开MFC ClassWizard,点击Add Class按钮添加新类CListNew,Base class:CListCtrl,同时为list控件关联控件变量,变量名为:m_RecordList,变量类型为:CListNew。2、在listNew.h构造函数中添加:public: SetBkImageNew(CString strImagePath);原创 2010-12-09 11:13:00 · 500 阅读 · 0 评论 -
MFC中新建类在classview中没有显示问题
方法一:删除.ncb文件,关闭VC再重启 方法二:把工程目录下的Debug和Release文件夹删除,再删除.dsw .ncb .aps .plg .opt positions .clw这些无用文件再重新打开工程.dsp,再按CTRL+W打开类向导,会提示加载类,你随原创 2010-12-09 13:46:00 · 1651 阅读 · 1 评论 -
在MFC类中各种类的指针的获取和应用
获得CWinApp获得CMainFrame获得CChildFrame获得CDocument获得CView在CWinApp中 AfxGetMainWnd()m_pMainWndAfx转载 2010-12-13 15:38:00 · 412 阅读 · 1 评论 -
菜单响应函数:ON_COMMAND和ON_UPDATE_COMMAND_UI,ON_COMMAND_RANGE和ON_UPDATE_COMMAND_UI_RANGE
一、ON_COMMAND ON_COMMAND(id, memberFxn )Parameters:id ---------------------------------The command ID. //菜单定义的资源IDmemberFx转载 2010-12-24 13:59:00 · 888 阅读 · 0 评论 -
GetWindowRect和GetClientRect
GetWindowRect是取得窗口在屏幕坐标系下的RECT坐标(包括客户区和非客户区),这样可以得到窗口的大小和相对屏幕左上角(0,0)的位置。 GetClientRect取得窗口客户区(不包括非客户区)在客户区坐标系下的RECT坐标,可以得到窗口的大小,而不能得到转载 2011-01-06 14:58:00 · 546 阅读 · 0 评论 -
修改对话框边框颜色
对于对话框,只需要重载默认的消息处理函数就行了:// 重载默认的消息处理函数,主要处理WM_MOVE WM_PAINT WM_NCPAINT WM_NCACTIVATE WM_NOTIFY这// 几个消息就可以了LRESULT CMyDialog::DefWindow转载 2011-09-22 11:29:22 · 3781 阅读 · 0 评论 -
根据控件ID得到句柄
假设有8个相同控件HWND m_hwndSplit[8]; for (int i = 0; i { m_hwndSplit[i] = GetDlgItem(ID_XX+i)->GetSafeHwnd(); }BOOL CXX::F原创 2011-09-26 09:29:34 · 5920 阅读 · 1 评论 -
【备忘录】创建自己的消息映射
步骤1:定义自己的消息ID。一般情况下用#define语句,如: #define MY_MESSAGE WM_USER+10步骤2:定义消息映射。在BEGIN_MESSAGE_MAP()之后,END_MESSAGE_MAP()之前,加入消息原创 2011-10-17 17:10:41 · 400 阅读 · 0 评论 -
防止窗口闪烁的方法
1、将Invalidate()替换为InvalidateRect()。 Invalidate()会导致整个窗口的图象重画,需要的时间比较长,而InvalidateRect()仅仅重画Rect区域内的内容,所以所需时间会少一些。虫虫以前很懒,经常为一小块区域的重画就调用Inv转载 2011-10-10 09:46:37 · 383 阅读 · 0 评论 -
自绘按钮的实现
<br /><br />下载本文示例工程<br /><br />如果你希望能够在自己的程序中表现出新意,那么你一定不会仅仅满足于MFC提供那些标准控件。这时,我们就必须自己另外多做些工作了。就改变控件外观这一点来说,主要是利用控件的自绘功能(Owner Draw)实现的。本篇将和各位一起定义一个XP风格的CXPButton按钮类,目的不在于介绍CXPButton类的使用技巧,而在于向各位阐述实现自绘按钮的方法。当然如果你觉得CXPButton有用的话,也可以把它的源文件保存下来,直接加入到自己的项目中。<b转载 2011-04-29 11:17:00 · 827 阅读 · 1 评论 -
"cannot add new member"解决方法
<br />今天在添加控件的时候弹出这样的问题,在网上找了一下相关的解决方法,最常见的莫过于:1.:如果出现这种情况,我们可以先把工程给关闭,然后删除 *.clw文件,然后再打开工程,并按CTRL+W打开ClassWizard,这里我们输入先前删除的文件的文件名,然后点确定,便可重新生成一次*.clw文件。(注意:这里的*代码你的工程,如:我的工程叫Test,那么我们就应该删除Test.clw文件),这里如果顺序的进行ClassWizard页面的话,那么上面的问题上就解决了。<br />我尝试了上面的方法,原创 2011-04-28 16:16:00 · 1771 阅读 · 0 评论 -
[VC]基于对话框程序,自定义工具栏(支持真彩色图标,可添加文字)
转载自 ewook最终编辑 ewook<br /><br />应该是一个老生常谈的问题了,仍然决定写一写的原因是:在网上搜一搜,讲得有效易懂的还真没发现(可能是大虾们都懒得去写。。。)<br />动机:传统的VC工具栏只支持16色的图标,且不能添加文字。<br />要点:CToolBarCtrl类的使用。先引用MSDN上的话(翻译水平比较菜,见谅!)<br /> 使用CToolBarCtrl类,一般遵从以下几个步骤:<br /> 1.构造一个CToolBarCtrl转载 2011-05-31 11:05:00 · 1519 阅读 · 0 评论 -
Tab Control控件的详细使用
<br />1. 新建一个MFC工程, 取名MyTab, 选择Dialog based, 然后Finish.<br />2. 删除对话框上默认添加的三个控件. 添加Tab Control控件并在Property属性中设置ID为IDC_TABTEST 在More Styles里勾上Bottom. 调速尺寸使其布满整个对话框. 在ClassWizard为其添加变量, 变量名为m_tab. 类型为CTabCtrl.<br />3. 在对话框的初始化函数OnInitDialog里面添加如下代码:<br /><br原创 2010-12-27 16:03:00 · 431 阅读 · 0 评论 -
将控件关联的变量值传递到另外一个类中的方法
今天在修改V1.1的一个bug:当向一个场景中加入已存的模型时会提示模型已存在,要求更改模型名称。 具体步骤如下:1、新建一个对话框,ID为:IDD_RENAME,在此对话框中添加一个Edit控件,控件ID为:IDC_Rename,按住Ctrl+W打开向导,为此对话框添加一个新类:CRename,同时关联一个CString类型的变量:m_rename.2、在Rename.cpp中添加:CRename* pRename; //作用:为向其他类中传递控件变量值同时在其构造函数中添加:pRename=thi原创 2010-12-29 16:51:00 · 2968 阅读 · 0 评论 -
BCGControlBar的使用方法
1、新建一个工程或打开已有工程,打开ClassView视图,点击右键选择New Class,Class type选择Generic Class,类名为:CWorkspaceBar基类选择:CBCGPDockingControlBar (默认public继承) 2、打开ClassView视图,选择CMainFrame,打开MainFrm.cpp,在OnCreate()函数中添加:if (!m_wndWorkSpace.Create (_T("View 1"), this, CRect (0, 0, 210,原创 2011-01-07 16:05:00 · 2228 阅读 · 1 评论 -
模态对话框与非模态对话框的区别
<br /><br />最近几天一直在研究这个问题,起初一直都是在用模态对话框,然而在一个对话框中打开另外一个模态对话框时,一直都无法将值传递给该模态对话框,今天早上将模态对话框改成了非模态对话框,问题竟然解决了。于是决定将它们之间的区别写下来。<br />首先来说说模态对话框,模态对话框是对话框中最常见的,使用范围很广泛,如果是模态的,那么弹出后该程序的其它窗口就呈不可用的状态,原来程序暂停执行,直到这个模态窗口关闭后才回到原来程序继续。其用法为:<br />CMyDlg dlg;<br />dlg.Do原创 2011-01-12 10:37:00 · 1217 阅读 · 0 评论 -
RichEdit控件的使用(未完)
具体步骤:新建一个基于对话框的工程,添加两个RichEdit控件,分别为:IDC_RichEdit_Show、IDC_RichEdit_Send。然后添加两个按钮,分别为IDC_SEND、IDC_CLEAN。1、在InitInstance()函数中添加:AfxInitRichEdit();//RichEdit并MFC的默认控件,必须调用该函数才能使用控件原创 2010-11-23 09:17:00 · 759 阅读 · 0 评论 -
Tab控件中滚动条的设置
<br />取消Tab控件中滚动条的方法:<br />选择Resources View视图,选择Tab上放置的Page页对话框,点击右键选择Properties->Styles,勾选No scroll选项即可原创 2011-01-24 11:21:00 · 6113 阅读 · 0 评论 -
添加外部控件的方法
<br />对话框中添加Convers3d控件:<br />在Project->Add to Project->Components and Controls中Registered ActiveX Controls->Converse3DViewer Control原创 2011-01-24 14:59:00 · 499 阅读 · 0 评论 -
添加进度条对话框
1、新建一个对话框,ID为:IDD_progressDialog,并在此对话框中添加进度条控件,ID为:IDC_PROGRESS1。通过向导为进度条关联一个控制变量:m_loadProgress2、双击此对话框,添加CProgressContrDlg类,在CProgressContrDlg.cpp中BEGIN_MESSAGE_MAP与END_MESSAGE_MAP()之间添加ON_MESSAGE(WM_UPDATEPOS,OnMyMessage),并在StdAfx.h头文件中添加:#define WM_UP原创 2011-03-03 17:14:00 · 3174 阅读 · 1 评论 -
ON_COMMAND和ON_MESSAGE的区别
在MFC应用程序中传输的消息有三种类型:窗口消息、命令消息和控件通知。窗口消息(Window Message)一般与窗口的内部运作有关,如创建窗口、绘制窗口和销毁窗口等。通常,消息是从系统发送到窗口,或从窗口发送到窗口。若需要窗口消息的完全的列表,请参考M F C文档。命令消息命令消息一般与处理用户请求相关,当用户单击一个菜单项或工具栏时,命令消息产生,并被发送到能处理该请转载 2012-06-07 15:14:44 · 784 阅读 · 1 评论