摘要:
在做一个MFC软件的时候有一个这样的需求,就是要有类似与AutoCad的命令输入框,如下图所示:本着不重写已有功能的原则,在MFC中发掘了一圈,没发现有可用的现成控件,上网搜了一下,发现有人做过,但竟然还收费出售,so faint,只能自己动手做一个。其实思路还是蛮简单的,就是放个Edit控件处理它的键盘输入事件,防止删除之前的记录和提示信息,还要处理结束命令,比如回车、空格之类的。主要有以下几个... 阅读全文
摘要:
在VC++中有着一大把字符串类型。从传统的char*到std::string到CString,简直是多如牛毛。期间的转换相信也是绕晕了许多的人,我曾就是其中的一个。还好,MS还没有丧失功德心,msdn的一篇文章详细的解析了各种字符串的转换问题,链接如下:http://msdn2.microsoft.com/zh-cn/library/ms235631(VS.80).aspx。参照这篇文章,可以搞定... 阅读全文
摘要:
非模态对话框比模态对话框更难使用这是众所周知的,这是由于模态对话框运行时,阻塞了其父窗口的消息循环,使其能自成一派,所以能够怡然自得。但非模态对话框只相当于一个由父窗体创建的一个同级的Hwnd,就像一个长大了的孩子,可以和父母并驾齐驱了,需要父母管又不能管的太厉害,其资源管理、通信都会比模态的更为复杂。很多时候,能用模态对话框的情况下,都会用模态的。虽然Copper 老先生指着鼻子苦口婆心的教导了... 阅读全文
摘要:
在C++中经常会涉及到处于不同头文件的类互相引用的情况,有时候头文件引用(include)会搞得很乱,导致报一堆的错。其实遵循一定规则,可以避免大部分的混乱。首先,要对头文件进行处理,保证不会出现重定义的错误。这个应该每个人都会,通常有两种做法:1. 在.cpp文件中添加保护,比如在.cpp文件中添加:#ifndef _XX_H_#define _XX_H_#include "xx.h"#endi... 阅读全文
摘要:
有时候我们经常把对话框和视图结合起来,做成AutoCAD命令输入框、PhotoShop浮动框之类的效果。但很奇怪的是我看过的MFC的书上都没有特别说明过这样的工作该如何去做,我刚接触MFC的时候都是通过控制非模态对话框来模拟的,后来才知道这些工作是通过CControlBar的派生类来完成的。比如CDialogBar就是加载一个已有的对话框资源,嵌入Frame中,和视图配合使用。其实知道了有这么个东... 阅读全文
摘要:
做一个MFC程序的时候碰到一个需求。就是需要根据定制情况,动态生成菜单,菜单的具体结构和信息是之前不知道的(因此不能利用工具构造),点击不同类型的菜单会触发特定的一类事件(需要动态绑定事件)。这种需求实际是蛮不BT的,很多场合下都可能会有,用C#写了个Demo花了不到半个小时。但转到MFC下来写,就费尽周折。其实这个问题代表了在MFC中动态创建资源绑定事件的一般性问题,所以总结一下。动态创建菜单需... 阅读全文