设为首页 加入收藏

TOP

对话方块(八十)
2010-12-30 21:13:56 】 浏览:57554
Tags:对话 方块
用MultiCharToWideChar转换。

改变字体
 

我们将在第十七章详细讨论字体,但那些都不能代替通用对话方块函式来选择字体。

在WM_CREATE讯息处理期间,POPFONT.C中的POPPAD呼叫PopFontInitialize。这个函式取得一个依据系统字体建立的LOGFONT结构,由此建立一种字体,并向编辑控制项发送一个WM_SETFONT讯息来设定一种新的字体(内定编辑控制项字体是系统字体,而PopFontInitialize为编辑控制项建立一种新的字体,因为最终该字体将被删除,而删除现有系统字体是不明智的)。

当POPPAD收到来自程式的字体选项的WM_COMMAND讯息时,它呼叫PopFontChooseFont。这个函式初始化一个CHOOSEFONT结构,然後呼叫ChooseFont显示字体选择对话方块。如果使用者按下「OK」按钮,那么ChooseFont将传回TRUE。随後,POPPAD呼叫PopFontSetFont来设定编辑控制项中的新字体,旧字体将被删除。

最後,在WM_DESTROY讯息处理期间,POPPAD呼叫PopFontDeinitialize来删除最近一次由PopFontSetFont建立的字体。

搜寻与替换
 

通用对话方块程式库也提供两个用於文字搜寻和替换函式的对话方块,这两个函式(FindText和ReplaceText)使用一个型态为FINDREPLACE的结构。图10-11中所示的POPFIND.C档案有两个常式(PopFindFindDlg和PopFindReplaceDlg)呼叫这些函式,还有两个函式在编辑控制项中搜寻和替换文字。

使用搜寻和替换函式有一些考虑。首先,它们启动的对话方块是非模态对话方块,这意味著必须改写讯息回圈,以便在对话方块活动时呼叫IsDialogMessage。第二,传送给FindText和ReplaceText的FINDREPLACE结构必须是一个静态变数,因为对话方块是模态的,函式在对话方块显示之後传回,而不是在对话方块结束之後传回;而对话方块程序必须仍然能够存取该结构。

第三,在显示FindText和ReplaceText对话方块时,它们通过一条特殊讯息与拥有者视窗联络,讯息编号可以通过以FINDMSGSTRING为参数呼叫RegisterWindowMessage函式来

首页 上一页 77 78 79 80 81 82 下一页 尾页 80/82/82
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇剪贴簿 下一篇功能表及其他资源

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目