b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

win32sdk学习-Richedit组件的使用

电脑杂谈  发布时间:2020-04-01 02:20:45  来源:网络整理

眼镜苏椒麻鸡是加盟店吗_今年是甲午年 去年年号是什么年是否叫辰蛇 巳马_riched32.dll是什么

可以使用CreateWindow创建Richedit组件,也可以使用对话框模板资源在创建对话框时自动创建richedit.

在使用richedit组件之前,您需要使用LoadLibrary(“ RichEd20.dll”),因为richedit保存为单独的dll. 如果未提前调用此功能,则可能不会显示该组件. Richedit有多种版本. RICHED20.DLL代表2.0和3.0 dll,而RICHED32.DLL代表1.0版本. 通常,2.0版可以使用大多数功能.

对话框资源模板:

DLG_MAINDIALOGEX6,5,265,285

STYLEDS_3DLOOK | DS_CENTER | DS_SHELLFONT | WS_VISIBLE | WS_BORDER | WS_CAPTION | WS_DLGFRAME | WS_GROUP | WS_MAXIMIZEBOX | WS_POPUP | WS_THICKFRAME | WS_SYSMENU | WS_TABSTOP

EXSTYLEWS_EX_WINDOWEDGE

CAPTION“记事本”

MENUIDR_MENU1

CLASS“ DLG_MAIN”

FONT12,“ Tahoma”,400,0,0

{

CONTROL“”,IDC_RICHEDIT1,RICHEDIT_CLASS,WS_VSCROLL | NOTWS_BORDER | NOTWS_TABSTOP | ES_MULTILINE | ES_NOHIDESEL | ES_WANTRETURN,0,33,265,230,WS_EX_CLIENTEDGE

}

CONTROL部分是richedit组件的一些属性设置,IDC_RICHEDIT1是组件资源ID标识符,

RICHEDIT_CLASS是richedit组件的窗口类名称. 后者是组件的样式.

2种常见样式:

ES_MULTILINE多行文本模式

ES_WANTRETURN输入键直接更改数字. 默认值为CTRL + Enter.

riched32.dll是什么_今年是甲午年 去年年号是什么年是否叫辰蛇 巳马_眼镜苏椒麻鸡是加盟店吗

ES_NOHIDESEL防止RichEdit控件在失去焦点时隐藏所选区域的高光. 通常,在查找字符时,我们希望richedit选择找到的字符.

Richedit有很多新闻. 该msdn有详细的介绍. 这是一些常用的文本编辑.

SendMessage(hwndrich,EM_SETEVENTMASK,0,ENM_SELCHANGE | ENM_MOUSEEVENTS | ENM_CHANGE | ENM_KEYEVENTS | ENM_SCROLL | ENM_DROPFILES)

EM_SETEVENTMASK用于设置richedit以响应那些事件消息. 通过指定参数,它是richedit响应事件,并将消息发送到父窗口进行处理.

ENM_SELCHANGE选择更改

ENM_MOUSEEVENTS鼠标的移动和点击

ENM_KEYEVENTS键盘事件

GETTEXTLENGTHEXlengthstrust = {GTL_NUMCHARS,1200};

SendMessage(hwndrich,EM_GETTEXTLENGTHEX,(WPARAM)和lengthstrust,(LPARAM)0);

EM_GETTEXTLENGTHEX消息,用于获取richedit组件中文本的长度. 消息附带的参数WPARAM是GETTEXTLENGTHEX结构类型,用于确定如何计算编辑器文本的长度.

typedefstruct_gettextlengthex {

DWORDflags;

UINTcodepage;

} GETTEXTLENGTHEX;

Flags的值用于标记应如何计算长度. 例如,GTL_NUMCHARS表示返回的字符数.

代码页通常具有两个值: ANSI代码页CP_ACP,Unicode1200

该方法返回计算出的长度值

SendMessage(hwndrich,EM_REPLACESEL,0,(LPARAM)TEXT(“ \ t”)));

眼镜苏椒麻鸡是加盟店吗_riched32.dll是什么_今年是甲午年 去年年号是什么年是否叫辰蛇 巳马

该消息用于替换当前选择的文本. LPARAM是字符指针.

SendMessage(hwndrich,EM_UNDO,0,0);

撤消当前操作

SendMessage(hwndrich,EM_REDO,0,0);

恢复上一次撤消

SendMessage(hwndrich,WM_COPY,0,0);

SendMessage(hwndrich,WM_CUT,0,0);

SendMessage(hwndrich,WM_PASTE,0,0);

用于剪切,复制和粘贴. 这是编辑组件的消息. 还可以使用Richedit.

SendMessage(hwndrich,EM_GETSEL,(WPARAM)和lindex,0);

获取当前选定的起始字符和结束字符的位置,并使用两个DWORD指针进行接收.

SendMessage(hwndrich,EM_EXGETSEL,0,(LPARAM)和CHARRANGE);

此消息还会获取当前选择的字符位置,但是它使用CHARRANGE结构来保存选择范围.

typedefstruct_charrange {

LONGcpMin;

LONGcpMax;

} CHARRANGE;

结构成员分别指示开始位置和结束位置.

眼镜苏椒麻鸡是加盟店吗_riched32.dll是什么_今年是甲午年 去年年号是什么年是否叫辰蛇 巳马

SendMessage(hwndrich,EM_GETSELTEXT,0,(LPARAM)缓冲区);

获取当前选择的字符文本. 缓冲区是用于接收所选文本的字符缓冲区的数组.

SendMessage(hwndrich,EM_REPLACESEL,0,(LPARAM)缓冲区);

替换当前选择的文本. 缓冲区存储用于替换选择的字符串.

SendMessage(hwndrich,EM_FINDTEXTEX,(wParam)标志,(LPARAM)和FINDTEXTEX);

在当前richedit中查找文本. flags参数指定搜索条件. LPARAM参数是FINDTEXTEX

包含信息搜索结果.

typedefstruct_findtextex {

CHARRANGEchrg; CHARRANGECHRG; //搜索范围

LPCTSTRlpstrText; LPCTSTRlpstrText; //要查找的字符串

CHARRANGEchrgText; CHARRANGEchrgText; //找到字符串后的选择范围.

} FINDTEXTEX;} FINDTEXTEX;

SendMessage(hwndrich,EM_EXSETSEL,0,(LPARAM)CHARRANGE);

设置Richedit组件选择文本riched32.dll是什么,CHARRANGE指定选择范围,选择部分将突出显示.

需要设置ES_NOHIDESEL,否则该组件失去焦点时将不会突出显示.

CHARFORMATcformat;

SendMessage(hwndrich,EM_GETCHARFORMAT,SCF_SELECTION,(LPARAM)和cformat);

获取当前所选文本的字符格式属性. wParam参数指定选择范围. 它具有两个值: SCF_SELECTION当前选择的字符格式和SCF_DEFAULT默认字符格式.

今年是甲午年 去年年号是什么年是否叫辰蛇 巳马_riched32.dll是什么_眼镜苏椒麻鸡是加盟店吗

LPARAM参数是指向CHARFORMAT结构的指针,该结构用于存储接收到的字符属性.

SendMessage(hwndrichriched32.dll是什么,EM_SETCHARFORMAT,SCF_SELECTION,(LPARAM)和cformat);

用于设置当前选择的文本字符属性. 参数与上面相同,但是需要设置的字符属性存储在CHARFORMAT结构中,主要包括颜色,字体大小,字体名称等.

EDITSTREAMstream;

SendMessage(hwndrich,EM_STREAMOUT,SF_TEXT,(LPARAM)和流);

该消息指定richedit使用流来输出组件的内容. wParam指定输出格式,

有常见格式,例如SF_RTF,SF_TEXT,SF_RTFNOOBJS.

EDITSTREAM结构用于控制输出和输入.

typedefstruct_editstream {

DWORD_PTRdwCookie; //通常是用于流式读写的文件句柄

DWORDdwError; //表示流的读写结果,0表示没有错误

EDITSTREAMCALLBACKpfnCallback; //流读写回调函数,用于控制读写

}编辑流;

EDITSTREAMCALLBACK函数原型:

DWORDCALLBACKSaveStreamCallback(DWORDdwCookie,LPBYTEpbBuff,LONGcb,LONG * pcb)

dwCookie是EDITSTREAM的成员,pbBuff是读写缓冲区LONGcb,它指示要读取和写入的数据的长度. * pcb代表实际的读取和写入长度. * pcb通常不大于cb.

SendMessage(hwndrich,EM_STREAMIN,SF_TEXT,(LPARAM)和流);

指定richedit使用流将内容读取到组件显示中. 参数与上面相同.

PARAFORMATparaformat;

SendMessage(hwndrich,EM_SETPARAFORMAT,0,(LPARAM)和格式);

设置段落文本的格式. 如果选择了多行,请设置多行格式. LPARAM参数是一个PARAFORMAT指针,用于保存格式化的段落信息.


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-159545-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...