Dissecting MFC
文章平均质量分 74
yingzai621
这个作者很懒,什么都没留下…
展开
-
奇怪的宏
MFC中构建消息映射表的宏位于Include目录下的AFXWIN.H中:#ifdef _AFXDLL#define BEGIN_MESSAGE_MAP(theClass, baseClass) / const AFX_MSGMAP* PASCAL theClass::_GetBaseMessageMap() / { return &baseClass::messageMap; }原创 2008-05-01 09:16:00 · 426 阅读 · 0 评论 -
给对话框上的静态文本加上超链接
很多软件开发着喜欢在“关于”对话框中加入一些超链接(比如:自己的博客地址或E-mail)一扩大自己的影响。原以为这个很容易实现,最近也想试一下,原来MFC中并没有这样的静态文本类给我用,搜索一下发现,有一位高人写了一个CHyperLink非常好用。我想原作者肯定来自CodeProject,上CodeProject一搜果然不出我所料。大致看了一下那个类,原理是用WinExec调用浏览器来访问超链接。原创 2008-09-07 11:31:00 · 793 阅读 · 0 评论 -
如何使指定的节点被选中
问题描述:在我的程序中有一个CTreeView视图,现在知道该视图中某个树节点的TVITEM结构体中的pszText和lParam两个参数,我要通过代码把该节点选中以触发TVN_SELCHANGING消息的发送。解决办法一: CWellTreeView* treeview=(CWellTreeView*)GetView(RUNTIME_CLASS(CWellTreeView)); tr原创 2008-06-08 22:47:00 · 997 阅读 · 0 评论 -
表型记录集不能执行SQL语句
刚才发现表型记录集不能FindFirst(),书上大致是这样说的:使用表型记录集可以查询、添加、改变、或删除基础表中的记录,但是不能在像动态记录集中那样,使用SQL语句来过滤或排序数据。暂时不知道原因,只有先记住了,所以在表型记录集中查找一条记录时必须逐条查找,效率自然降低了。虽然如此,我们还是不用担心,因为表行记录集毕竟用的少。原创 2008-06-03 23:04:00 · 457 阅读 · 0 评论 -
MFC DAO编程中的复制基本表操作
Access是关系型数据库,根据关系型数据库理论,同一个数据库中一般不存在相同结构的基本表,因为没有必要,完全可以union起来。但是,在实际编程开发过程中,总会存在一些奇特的需求;比如我现在做的这个项目,一个井眼对应一个基本表,而这些基本表的结构却完全相同,又不能合并。既然没有必要存在相同结构的基本表,当让就不存在复制基本表(或基本表的结构)的函数了,因而只能自己用代码来完成;大致思路是这样,先原创 2008-06-01 12:59:00 · 588 阅读 · 0 评论 -
给树形控件的节点编号
还是我那个科技创新项目,需要获取树形控件的节点编号,我觉得应该有对应的函数,查看CTreeCtrl的成员函数,发现有一个很像:GetItemData(HTREEITEM hItem),但仅仅是像而已!TVITEM用来存储树形控件节点的信息,定义如下:typedef struct tagTVITEM { UINT mask; HTREEITEM hItem; U原创 2008-05-18 21:43:00 · 1263 阅读 · 1 评论 -
关于WM_NOTIFY与消息反射————耗费我两天时间才解决的问题
谁让我这么菜呢!不过,没有菜鸟,哪来高手?-_-| 其实,问题很简单,我想在listctrl响应NM_SETFOCUS的同时通知其父窗口(其实我这句话说错了,listctrl只能响应=NM_SETFOCUS,为什么有个“=”呢?稍后解释),最幼稚的想法是让在listctrl和父窗口中都添加对此消息的响应,很不幸,我在一开始就是这么想的-_-| 。。。很明显我失败了!后来我又发现,如果在li原创 2008-05-18 23:02:00 · 1033 阅读 · 1 评论 -
VC++常用数据类型及其操作详解 - TMD 程序员宁有种乎? - 博客园
一. VC常用数据类型列表二. 常用数据类型转化2.1数学类型变量与字符串相互转换2.2 CString及string,char *与其他数据类型的转换和操作●CString,string,char*的综合比较●数学类型与CString相互转化●CString与char*相互转换举例●CString 与 BSTR 型转转载 2008-05-17 00:15:00 · 539 阅读 · 0 评论 -
静态切分窗口的隐藏与显示
我FUKE!写了一大堆,没保存住,我想哭。。。不管了,把代码贴出来就算了,不懂的留言问我。void CUsefulSplitterWnd::HideColumn(int place,int colHide){ int rowActive, colActive; if (GetActivePane(&rowActive, &colActive) != NULL && colA原创 2008-07-18 17:36:00 · 883 阅读 · 2 评论 -
静态切分窗口的替换与更新
今天在我的项目中遇到这样的需求,我想在点击工具栏某个自定义的视图切换按钮时,静态切分窗口中的某个视图被一个新视图替换(例如:CFormView被CEditView替换)。我开始的想法是:在那个视图按钮被点击的消息响应函数中发送WM_CREATE消息,引发OnCreate,然后是如下的调用次序:OnCreateHelper——OnCreateClient——CreateView,经过实践发现只有第原创 2008-07-17 09:20:00 · 608 阅读 · 2 评论 -
LPTSTR、LPCSTR、LPCTSTR、LPSTR的意义 - 豆子的专栏 - CSDNBlog
UNICODE:它是用两个字节表示一个字符的方法。比如字符A在ASCII下面是一个字符,可A在UNICODE下面是两个字符,高字符用0填充,而且汉字程在ASCII下面是两个字节,而在UNICODE下仍旧是两个字节。UNICODE的用处就是定长表示世界文字,据统计,用两个字节可以编码现存的所有文字而没有二义。 MBCS,它是多字节字符集,它是不定长表示世界文字的编码。MB转载 2008-05-03 17:20:00 · 464 阅读 · 0 评论 -
不同视图类之间的命令消息传递
我们先看看VC课上学的命令消息传递的路线: 命令消息接收者的类型 处理次序 Frame窗口 1.View2.Frame窗口本身3.CWinApp对象原创 2008-04-30 12:32:00 · 703 阅读 · 0 评论 -
在VC++6.0下构建可直接编辑的列表控件类
在VC++6.0下构建可直接编辑的列表控件类转载 2008-04-27 12:28:00 · 737 阅读 · 0 评论 -
MAKEWPARAM
以下摘自MSDN: The WM_COMMAND message is sent when the user selects a command item from a menu, when a control sends a notification message to its parent window, or when an accelerator keystroke is trans原创 2008-06-22 00:37:00 · 3277 阅读 · 0 评论