摘要: 今天,在用MFC写一个工具软件的时候,用到了一个动态创建的组合框,当组合框中的菜单项比较多的时候,默认的组合框下拉菜单高度就显得不够了,为了能改变默认的下拉菜单高度到合适的位置,可以作如下操作: CRect rc; NewCombo.GetDroppedControlRect(&rc); NewCombo.GetParent()->ScreenToCl... 阅读全文
posted @ 2007-05-23 12:35 拿走不谢 阅读(890) 评论(0) 推荐(0)
摘要: 下面是两个对CSplitterWnd进行扩展的类,仅供参考;http://www.codeproject.com/splitter/st_splitterwnd.asphttp://www.codeguru.com/Cpp/W-D/splitter/article.php/c1543 阅读全文
posted @ 2007-05-15 22:43 拿走不谢 阅读(641) 评论(0) 推荐(0)
摘要: VC控件 TreeCtrl 与 ListCtrl 演示作者:兰州大学现物系 王景生 下载源代码这个例子类似于 Windows 的资源管理器,程序运行界面如图一所示:图一主要用到的类有:CListCtrl,CTreeCtrl,CImageList,CFileFind 和函数SHGetFileInfo()简述步骤如下: 1、增加 TreeCtrl 的 TVS_HASBUTTONS,TVS_HASLIN... 阅读全文
posted @ 2007-05-14 16:04 拿走不谢 阅读(1731) 评论(1) 推荐(0)
摘要: 这很有可能是由于系统时间被修改了,比如所有的文件都是今天编辑的,然后将当前系统时间修改为昨天,此后每次生成该项目时都会重新生成所有文件。因为所有的文件的修改时间都比当前时间要新; 阅读全文
posted @ 2007-05-12 17:54 拿走不谢 阅读(279) 评论(0) 推荐(0)
摘要: CString CPublicFuncs::GetFilePath(CString title){ CString strFilePath; TCHAR pszBuffer[_MAX_PATH]; BROWSEINFO bi; LPITEMIDLIST pidl; bi.hwndOwner = NULL; bi.... 阅读全文
posted @ 2007-05-11 17:34 拿走不谢 阅读(694) 评论(0) 推荐(0)
摘要: 函数 :ShowWindow(SW_SHOWMAXIMIZED); 若上述函数不行,就用如下代码试试吧: WINDOWPLACEMENT lwndpl; WINDOWPLACEMENT * lpwndpl; lpwndpl=&lwndpl; GetWindowPlacement(lpwndpl); lpwndpl->showCmd=S... 阅读全文
posted @ 2007-04-28 10:21 拿走不谢 阅读(588) 评论(0) 推荐(0)
摘要: CEdit* pEdt=(CEdit*)GetDlgItem(IDS_EDT); pEdt->SetWindowText("lishush"); CFont newFont; newFont.CreatePointFont(180,"宋体"); pEdt->SetFont(&newFont); 但你要注意,CFont应该是一个全局变量... 阅读全文
posted @ 2007-04-28 09:52 拿走不谢 阅读(599) 评论(0) 推荐(0)
摘要: 如何让多文档程序在启动时不创建文档?而不是默认的会自动生成一个视图和一个文档显示在中间?不创建文档: 在CXXXApp::InitInstance()中 CCommandLineInfo cmdInfo; ParseCommandLine(cmdInfo); cmdInfo.m_nShellCommand = CCommandLineInfo::File... 阅读全文
posted @ 2007-04-28 09:10 拿走不谢 阅读(418) 评论(0) 推荐(0)
摘要: VC++的程序读了好些,自己写的倒是没多少.当开始用VC.net做C++程序时,一个简单的文件总是遇到"在查找预编译头指令时遇到意外的文件结尾的错误". 后查得知,VC.net默认情况下使用预编译头(/Yu),在加入新.h文件后编译时总出现fatal error C1010: 在查找预编译头指令时遇到意外的文件结尾的错误。解决方法是在在include头文件的地方加上#include "stda... 阅读全文
posted @ 2007-04-27 10:59 拿走不谢 阅读(3938) 评论(0) 推荐(0)
摘要: 在编辑CFormView派生类的资源模板的时候,一定要将其Style设置为child,不然程序在编译的时候没错,运行的时候会出现异常;切记切记。设置:在该CFormView对话框资源模板中右键->Propeities->Styles->Style->Child 然后确定就ok了 阅读全文
posted @ 2007-04-27 09:11 拿走不谢 阅读(3850) 评论(1) 推荐(0)
摘要: 如何实现24位色工具条作者/NorthTibet 下载源代码大家知道IE的工具条都是多彩的,本文介绍如何在自己的应用程序里实现24位色工具条。如图一所示: 图一 第一步: 在mainframe.h文件中声明成员变量: CToolBar m_hotToolBar; 在 CMainFrame::OnCreate() 中创建工具条,假设你已经创建了一个ToolBar资源和两... 阅读全文
posted @ 2007-04-26 16:52 拿走不谢 阅读(747) 评论(1) 推荐(0)
摘要: 郑爱武 (国防科技大学电子工程学院,长沙410073) 【摘要】:工具条已经成为Windows程序重要的组成部分,一些高级编程语言也提供了对实现工具条的支持,但通常只是按纽的集合,不能直接加入组合框控件,本文讲述了在Windows环境下用VC4.0及其以上版本在工具条中加入组合框控件的方法。 关键词:工具条, 组合框 ,消息响应 在一个界... 阅读全文
posted @ 2007-04-26 16:45 拿走不谢 阅读(1641) 评论(1) 推荐(0)
摘要: 在对话框中加入属性页作者:黄晨量 下载本文全部源代码当一个基于对话框的程序中有相当多的控件时,你一定会想到使用属性页来将这些控件分类放置。本文针对这种方法来讨论几种可能实现的方案。 方案一 本方案的例子请见源代码打包文件中的Property1部分在对话框上放置一个Tab Control的控件,再在对话框上放置所需的控件(本例放置了2个按钮,试图在每个标签中显示一个)。然后利用Class Wiza... 阅读全文
posted @ 2007-04-26 15:38 拿走不谢 阅读(1218) 评论(1) 推荐(0)
摘要: 原代码下载:CQA0410.exe (234KB) 原文出处:MSDN Magazine October 2004 (C++ Q&A) 创建客户区窗口 列表框之间项的拖拽操作 在发送绘画(paint)消息时,系统是如何识别某个窗口的客户区或非客户区?当我用 ::CreateWindow 创建窗口时,如何指定客户区矩形? Vipul Solanki 在创建窗口时不必指定客户... 阅读全文
posted @ 2007-04-26 15:37 拿走不谢 阅读(744) 评论(0) 推荐(0)
摘要: 从1989年开始,我就开始认识并接触到电脑,到1994年关注到互联网,再到成立网易,以及过去这几年的丰收,我其实前后走了18年。从1989年到2007年,整整18年我基本上没有在这个行业里偏离过多少。 我一直跟网易的员工讲,做事情一定要有兴趣,有兴趣才会深入。现在你做好所做的事情还有一点利益,有利益才会长久,否则做的一件事情跟你的利益没有什么关系,我不知道光凭兴趣能维持多久,也很难把这件事情... 阅读全文
posted @ 2007-04-25 13:38 拿走不谢 阅读(677) 评论(0) 推荐(0)
摘要: (1)lib是编译时需要的,dll是运行时需要的。 如果要完成源代码的编译,有lib就够了。 如果也使动态连接的程序运行起来,有dll就够了。 在开发和调试阶段,当然最好都有。 (2)一般的动态库程序有lib文件和dll文件。lib文件是必须在编译期就连接到应用程序中的,而dll文件是运行期才会被调用的。如果有dll文件,那么对应的lib文件一般是一些索引信息,具体的实现在dll文件中。如果只有l... 阅读全文
posted @ 2007-04-24 12:15 拿走不谢 阅读(27657) 评论(10) 推荐(1)
摘要: 问题的提出: 实际上所有线程都是用来处理C函数的,而不是C++类成员函数。标准库中提供一个API函数,这个函数以回调函数指针作为线程的执行代码并在单独的线程中调用回调函数。问题是在这样的线程库中不能创建执行对象成员函数的线程;只能使用普通的函数。因此,下列代码是失败的:// 启动线程库函数的线程int thr_create (void (*pf)(), void* prm, thread_t... 阅读全文
posted @ 2007-04-23 11:01 拿走不谢 阅读(943) 评论(0) 推荐(0)
摘要: 这种按钮状态的控制和ToolBar上的按钮状态的控制有所不同;假设现在在某一对话框上有一id为IDC_BUTTON_DELETEMAP的按钮资源;并且已经创建了该对话框的对话框类;现在要实现的效果是:当地图列表中有某一项被选中时,删除按钮有效,否则按钮无效;界面如图1所示:图1此时通过菜单View->ClassWizard打开MFC Wizard,选中其中的member variables标签,选... 阅读全文
posted @ 2007-04-05 08:27 拿走不谢 阅读(1334) 评论(0) 推荐(0)
摘要: 前文我们对非MFC DLL和MFC规则DLL进行了介绍,现在开始详细分析DLL的最后一种类型――MFC扩展DLL。 6.1概论 MFC扩展DLL与MFC规则DLL的相同点在于在两种DLL的内部都可以使用MFC类库,其不同点在于MFC扩展DLL与应用程序的接口可以是MFC的。MFC扩展DLL的含义在于它是MFC的扩展,其主要功能是实现从现有MFC库类中派生出可重用的类。MFC扩展DLL使用MF... 阅读全文
posted @ 2007-03-31 10:01 拿走不谢 阅读(4449) 评论(0) 推荐(0)
摘要: ado.h,ado.cpp等是一个ado封装类 ,较容易使用,流传很广 但是在工程应用或封装为动态库时经常会出现: :error C2872: 'DataTypeEnum' : ambiguous symbol : error C2872: 'ParameterDirectionEnum' : ambiguous symbol 等类似错误,网上给出... 阅读全文
posted @ 2007-03-30 19:08 拿走不谢 阅读(3853) 评论(0) 推荐(0)
摘要: 如果要编写模块化的软件,就要对对动态链接库(DLL)有一定的了解,本人这段时间在修改以前的软件时,决定把重复用的类和对话框做到DLL中,下面就从一个简单的例子讲起,如何实现MFC扩展DLL中导出类和对话框。 一、创建MFC扩展DLL 步骤: 运行Visual Studio 6.0->File->New...->Projects; 选择Mfc AppWizard(dll),在右边P... 阅读全文
posted @ 2007-03-30 17:19 拿走不谢 阅读(1819) 评论(1) 推荐(0)
摘要: 虽然能用DLL实现的东西都可以用COM来实现,但DLL的优点确实不少,它更容易创建。本文将讨论如何利用MFC来创建不同类型的DLL,以及如何使用他们。一、DLL的不同类型 使用MFC可以生成两种类型的DLL:MFC扩展DLL和常规DLL。常规DLL有可以分为动态连接和静态连接。Visual C++还可以生成WIN32 DLL,但不是这里讨论的主要对象。1、MFC扩展DLL 每个DLL都有... 阅读全文
posted @ 2007-03-30 16:59 拿走不谢 阅读(552) 评论(0) 推荐(0)
摘要: 一、 函数的定义和使用方法: 第一步: 运行AppWizard,定义项目名为mydll,选择MFC AppWizard(dll),而不是MFC AppWizards(exe)。 第二步: 在这个例子中,只有一个AppWizard屏幕出现,选择MFC扩展DLL(MFC Extension DLL ... 阅读全文
posted @ 2007-03-30 15:56 拿走不谢 阅读(6810) 评论(4) 推荐(0)
摘要: 1、关于类指针及类指针所指向对象的删除;原以为是:CObject *pObj = new CObject();pObj->~CObject();可是实际上是delete pObj; 阅读全文
posted @ 2007-03-29 09:11 拿走不谢 阅读(287) 评论(3) 推荐(0)
摘要: 1、初始化列表 如果这个CCombobox放在一个对话框类内,则不可在对话框的构造函数内来初始化combobox,可以放在对话框的OnShow事件内。2、取得当前选中的内容;得到当前选中项内容: int nIndex = GetCurSel(), GetLBText(nIndex, str);清除列表内容:ResetContent(); 阅读全文
posted @ 2007-03-26 09:04 拿走不谢 阅读(1563) 评论(0) 推荐(0)