向RichEdit 发送 EM_SETCHARFORMAT 遇到的问题
看了一下rich.h中的定义看到:
typedef struct _charformat
{
UINT cbSize;
_WPAD _wPad1;
DWORD dwMask;
DWORD dwEffects;
LONG yHeight;
LONG yOffset;
COLORREF crTextColor;
BYTE bCharSet;
BYTE bPitchAndFamily;
char szFaceName[LF_FACESIZE];
_WPAD _wPad2;
} CHARFORMATA;
其中 _WPAD 的定义为:
#ifdef _WIN32
# define _WPAD /##/
#else
# define _WPAD WORD
#endif
不明白/##/是什么东西。这个结构体在VB里面要怎样声明?
最好能够给出一个实例,可以加分的!
问题点数:30、回复次数:5Top
1 楼TechnoFantasy((VB MVP)www.applevb.com)回复于 2003-06-04 23:31:56 得分 0
#If Win32 Then
Debug.Print "AAA"
#Else
Debug.Print "BBB"
#End IfTop
2 楼James0001(虾米—什么时候成大虾?)回复于 2003-06-05 07:07:50 得分 30
'前旧做的一个程序里用到的,一起给你好了
'不过直接发 EM_SETCHARFORMAT 给 RichText 控件没用,RichText 控件会屏蔽此消息
'必须发送给自己创建的 RichEdit
Private Const SCF_SELECTION = &H1&
Private Const SCF_WORD = &H2&
Private Const SCF_DEFAULT = &H0&
Private Const SCF_ALL = &H4&
Private Const LF_FACESIZE = 32&
Private Const CFM_BOLD = &H1&
Private Const CFM_ITALIC = &H2&
Private Const CFM_UNDERLINE = &H4&
Private Const CFM_STRIKEOUT = &H8&
Private Const CFM_PROTECTED = &H10&
Private Const CFM_LINK = &H20&
Private Const CFM_SIZE = &H80000000
Private Const CFM_COLOR = &H40000000
Private Const CFM_FACE = &H20000000
Private Const CFM_OFFSET = &H10000000
Private Const CFM_CHARSET = &H8000000
Private Const CFE_BOLD = &H1&
Private Const CFE_ITALIC = &H2&
Private Const CFE_UNDERLINE = &H4&
Private Const CFE_STRIKEOUT = &H8&
Private Const CFE_PROTECTED = &H10&
Private Const CFE_LINK = &H20&
Private Const CFE_AUTOCOLOR = &H40000000
Private Type CHARRANGE
cpMin As Long
cpMax As Long
End Type
Private Type TEXTRANGE
chrg As CHARRANGE
lpstrText As String
End Type
Private Type CHARFORMAT
cbSize As Long
dwMask As Long
dwEffects As Long
yHeight As Long
yOffset As Long
crTextColor As Long
bCharSet As Byte
bPitchAndFamily As Byte
'szFaceName As String * LF_FACESIZE
szFaceName(LF_FACESIZE - 1) As Integer
End TypeTop
3 楼rainstormmaster(暴风雨 v2.0)回复于 2003-06-05 07:16:47 得分 0
EM_SETCHARFORMAT是textbox的消息,不适合richtextboxTop
4 楼rainstormmaster(暴风雨 v2.0)回复于 2003-06-05 07:19:36 得分 0
建议使用相应的以WM开头的消息,不过万事都有例外,真要想用,也不是不可以,要麻烦一些。Top
5 楼James0001(虾米—什么时候成大虾?)回复于 2003-06-05 07:51:46 得分 0
RichEdit 支持基本上所有 Edit (EM_*) 的消息,当然还有它自己的以 EM 开头的消息,EM_SETCHARFORMAT 是其中之一。Top



