您的位置:首页 > 其它

Find and Replace Dialog Boxes 查找和替换对话框

2009-07-13 19:33 471 查看




打开一个文本编辑器,按下Ctrl + F 出现左边图样的对话框--查找对话框,按下Ctrl + H 出现右边图样的对话框--替换替换对话框,在Windows中定义了两个结构体和两个函数,让我们在编程的时候能够很方便的创建这两个对话框。

这两个对话框不像系统中其他的对话框那样,这是非模态的对话框,允许用户在主窗口和这两个窗口之间来回切换。

在创建对话框之前,必须先调用 RegisterWindowMessage注册一个FINDMSGSTRING类型的消息,获得消息的ID号。

FINDREPLACE结构体:

typedef struct {
DWORD lStructSize;
HWND hwndOwner;
HINSTANCE hInstance;
DWORD Flags;
LPTSTR lpstrFindWhat;
LPTSTR lpstrReplaceWith;
WORD wFindWhatLen;
WORD wReplaceWithLen;
LPARAM lCustData;
LPFRHOOKPROC lpfnHook;
LPCTSTR lpTemplateName;
} FINDREPLACE, *LPFINDREPLACE;


lStructSize 结构体的大小,用sizeof(FINDREPLACE)初始化。

hwndOwner 创建查找替换对话框的窗口的句柄,也是接收之前注册的消息的对话框的句柄。

lpstrFindWhat 查找的字符串,使用动态分配的全局或者静态字符数组。

lpstrReplaceWith 替换成的字符串。

wFindWhatLen 查找字符串的长度

wReplaceWithLen 替换成的字符串的长度

/*

hInstance、lCustData、lpfnHook、lpTemplateName 如果不使用复杂的钩子,则可以忽略这四个参数。

*/

如果Flages设置了FR_DOWN位,则DOWN单选按钮被选中;

如果用户点击了对话框中的查找下一个按钮,在发送消息通知创建窗口之前,会设置Flages位,在消息处理函数中可以通过这个为来判断是否点击了“查找下一个按钮”。

配置了结构体以后,调用
FindText 或者ReplaceText函数创建对话框。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: