天天看点

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

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

打开一个文本编辑器,按下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 替换成的字符串的长度

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

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

配置了结构体以后,调用 FindText 或者ReplaceText函数创建对话框。