摘要: 对于文本编辑器,最关键的知识点,就是 插入符号 的操作了...windows中有5个基本的插入符号函数: CreateCaret:创建和窗口关联的插入符号 SetCaretPos:设置窗口内的插入符号的位置 ShowCaret:显示插入符号 HideCaret:隐藏插入符号 DestroyCaret:销毁插入符号对于插入符号的相关函数: GetCaretPos:获得当前插入符号位置的函数 GetCaretBlinkTime SetCaretBlinkTime获得和设置插入符号闪烁的时间函数关于 插入符号 的消息捕获:程序通过处理WM_SETFOCUS和WM_KILLFOCUS消息... 阅读全文
posted @ 2012-10-31 21:20 xingoo 阅读(602) 评论(0) 推荐(0)
摘要: 创建键盘接口: 有一个简单的方法:在窗口过程中增加WM_KEYDOWN逻辑,类似于复制了所有的WM_VSCROLL 和 WM_HSCROLL逻辑。但是,不管什么时候我们想修改滚动条逻辑,就不得不在WM_KEYDOWN消息上做同样的改变。这样的做法是不明智的 另一种更好的方法:把每一个WM_KEYDOWN消息转换为同等的WM_VSCROLL 或者 WM_HSCROLL消息。可以通过给窗口过程发送假的消息欺骗函数 WndProc函数,使她认为受到了滚动消息。发送函数为SendMessage:SendMessage(hwnd,message,wParam,lParam);向他发送的窗口过程可以使.. 阅读全文
posted @ 2012-10-31 20:09 xingoo 阅读(1239) 评论(0) 推荐(0)
摘要: 问题描述: 简单地使用随即的尺寸和颜色不停的绘制一系列的图像。一种古老的方式: 设置一个向窗口函数发送WM_TIMER消息的windows计时器。 对每个WM_TIMER消息,调用GetDC函数获取设备环境,然后绘制一个随机矩形,接着调用ReleaseDC函数释放设备环境。方法弊端: 程序不能很快的绘制随机矩形,必须等待每个WM_TIMER消息,会依赖于系统时钟的精度新函数: PeekMessage(&msg,NULL,0,0,PM_REMOVE);这个函数允许一个程序检查程序队列中的下一个消息,而不是真实的获取并删除它看到的消息。正常的循环消息:while (GetMessage(. 阅读全文
posted @ 2012-10-31 15:44 xingoo 阅读(603) 评论(0) 推荐(0)
摘要: 常用的MFC类CRuntimeClass结构在CRuntimeClass结构中定义了类名、对象所占存储空间的大小、类的版本号等成员变量及动态创建对象、派生关系判断等成员函数。每一个从CObject类派生的类都有一个CRuntimeClass结构同它关联,以便完成在运行时得到对象的信息或基类的信息。要使用CRuntimeClass结构,必须结合使用RUNTIME_CLASS()宏和其他有关运行时类型识别的MFC宏。CObject类MFC的CObject类为程序员提供了对象诊断、运行时类型标识和序列化等功能。(1)对象诊断:利用成员函数AssertValid进行对象有效性检查;利用成员函数Dump 阅读全文
posted @ 2012-10-31 10:14 xingoo 阅读(5449) 评论(0) 推荐(1)