1. Trang chủ
  2. » Công Nghệ Thông Tin

Tài liệu Visual C-019 Sử dụng RichEditCtrl ppt

5 271 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Sử Dụng RichEdit Control
Tác giả Chí Nam, Nguyễn Ánh Hoàng
Trường học University of Science, Ho Chi Minh City
Chuyên ngành Information Technology
Thể loại Tài liệu
Năm xuất bản 2005
Thành phố Ho Chi Minh City
Định dạng
Số trang 5
Dung lượng 262,93 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

cbSize = sizeof CHARFORMAT ; cf.. szFaceName ,"Times New Roman";.

Trang 1

S D NG RICHEDIT CONTROL

V n Chí Nam – Nguy n c Hoàng H

Khoa Công ngh Thông tin, Tr ng H KHTN TP.HCM (vcnam@fit.hcmuns.edu.vn, ndhha@fit.hcmuns.edu.vn)

Phiên b n c p nh t ngày 16/05/2005

RichEdit control là gì ?

RichEdit control là m t lo i control chu n c a Windows, dùng cho vi c nh p

li u hay hi n th các đo n v n b n lên dialog RichEdit control khá gi ng v i Edit control

i m đ c bi t c a RichEdit control so v i Edit control là : RichEdit control cho phép thi t l p t ng đ nh d ng riêng bi t trên đ n v t ng ký t trong control (t c là đ i

v i m i ký t trong RichEdit control, chúng ta có th thi t l p các đ nh d ng màu, c

ch , ki u ch … ) trong khi đ i v i Edit control chúng ta ch có th có m t thi t l p duy nh t đ i v i toàn control (không th thi t l p đ nh d ng cho t ng ký t riêng l )

L u ý khi s d ng RichEdit control

Khi s d ng RichEdit control trong m t ch ng trình nào đó, có m t hàm quan

tr ng n u chúng ta quên s d ng hay đ t hàm đó sai v trí thì s d n đ n vi c ch ng trình không th th c thi đ c Do đó :

NH DÙNG HÀM AfxInitRichEdit() KHI S D NG RICHEDIT

CONTROL VÀ T NÓ TRONG HÀM InitInstance() TRONG C App()

Ví d :

BOOL CRECDemoApp:: InitInstance ()

{

AfxInitRichEdit();//Quan tr ng

CRECDemoDlg dlg ;

m_pMainWnd = & dlg ;

int nResponse = dlg DoModal ();

if ( nResponse == IDOK )

{

}

else if ( nResponse == IDCANCEL )

{

// TODO: Place code here to handle when the dialog is // dismissed with Cancel

}

return FALSE ;

}

Trang 2

M t s l u ý khác

o Hi n th đ c nhi u dòng trong RichEdit control, check

Styles\Multiline

o Hi n th scroll, check vào Styles\Horizontal scroll,…

o S d ng đ c phím Enter trong RichEdit control, check vào

Styles\Want return

o Không b gi t màn hình khi đ nh d ng l ng l n ký t trong RichEdit

control, dùng hai hàm : LockWindowUpdate và

UnlockWindowUpdate

void CRECDemoDlg:: OnDinhdang ()

{

// TODO: Add your control notification handler code here CRichEditCtrl* pRE ;

int i ; pRE = (CRichEditCtrl*) GetDlgItem ( IDC_RICHEDIT1 );

LockWindowUpdate();

… for ( i =0; i < tam GetLength (); i ++) {

… }

UnlockWindowUpdate();

}

M T S C U TRÚC, HÀM TH NG G P

C u trúc CHARFORMAT

typedef struct _charformat {

UINT cbSize;

DWORD dwMask;

DWORD dwEffects;

LONG yHeight;

LONG yOffset;

COLORREF crTextColor;

Trang 3

BYTE bCharSet;

BYTE bPitchAndFamily;

TCHAR szFaceName[LF_FACESIZE];

} CHARFORMAT;

i v i c u trúc CHARFORMAT này, tham kh o thêm trong MSDN ph n CHARFORMAT đây, chúng tôi ch đ c p m t s v n đ có liên quan xung quanh

c u trúc này:

o C u trúc này dùng cho đ nh d ng các ký t trong RichEdit control sau khi đã đ c ch n

o Thành ph n cbSize luôn đ c s d ng và nh đ t :

CHARFORMAT cf ;

cf cbSize = sizeof( CHARFORMAT );

o Thành ph n dwMask cho bi t nh ng thu c tính (đ nh d ng) nào có s

thay đ i:

VD :

cf dwMask = CFM_ITALIC | CFM_COLOR | CFM_BOLD ;

Cho bi t 3 thu c tính v đ nghiên (Italic), màu s c (Color), thu c tính đ m (Bold) s có s thay đ i

o i li n v i thành ph n dwMask là thành ph n dwEffects Thành ph n

này dùng đ gán (ho c lo i b ) thu c tính đ nh d ng đã đ c đ a ra

trong thành ph n dwMask Các thu c tính có nh h ng t dwEffects là

Bold, Italic, Underlined, hay StrikeOut…N u mu n gán m t thu c tính nào thêm ta dùng toán t | và lo i b thu c tính nào ta dùng toán t & và toán t ~

Ví d :

thi t l p các thu c tính : ch in nghiêng, không đ m, và có màu xanh lá cây (Green), font ch là Times New Roman ta gán các thành ph n c a c u trúc CHARFORMAT nh sau :

CHARFORMAT cf ;

cf cbSize = sizeof( CHARFORMAT );

cf dwMask = CFM_ITALIC | CFM_COLOR | CFM_BOLD | CFM_FACE ;

cf dwEffects = CFE_ITALIC ;

cf dwEffects &= CFE_BOLD ;

cf dwEffects &= ~ CFE_AUTOCOLOR ;

cf crTextColor = RGB (0,255,0);

strcpy ( cf szFaceName ,"Times New Roman");

Trang 4

HÀM SetSel VÀ HÀM SetSelectionCharFormat

thi t l p đ nh d ng cho m t đo n v n b n ta th c hi n các b c sau :

o Ch n đo n v n b n đó (dùng hàm SetSel) L u ý, n u mu n ch n toàn

b n i dung c a control thì dùng SetSel(0,-1)

o Thi t l p các thu c tính c n thay đ i c a đo n v n b n thông qua c u trúc CHARFORMAT

Thay đ i đ nh d ng cho đo n v n b n thông hàm SetSelectionCharFormat

VÍ D MINH HO

Thi t k dialog nh hình d i đây

Cho phép

o Ng i s d ng nh p nh ng dòng v n b n vào h p RichEditCtrl

o Khi ng i s d ng b m nút Dinh Dang, các ký t trong h p Rich Edit

Ctrl đ c đ nh d ng theo m t tiêu chu n nào đó Ch ng h n : các ký t

t A đ n Z : màu xanh, các ký s (0-9) : màu đ , các ký t đ c bi t khác : màu đen…

Vi t hàm đ nh d ng

void CRECDemoDlg :: OnDinhdang ()

{

// TODO: Add your control notification handler code here

CRichEditCtrl * pRE;

int ;

CString tam;

pRE->GetWindowText(tam);

Trang 5

pRE-> SetSel (0,-1);

ChangeChar (pRE);

for (i=0;i tam GetLength ();i++) {

if (tam[ ]!=' ' && (tam[ ]<'A'||tam[ ]>'Z') && (tam[ ]<'a'||tam[ ]>'z'))

{

pRE-> SetSel ( , +1);

if ('0'<=tam[ ]&&tam[ ]<='9')

ChangeNumber (pRE);

else

ChangeOther (pRE);

} }

}

Hàm ChangeChar :

void CRECDemoDlg :: ChangeChar ( CRichEditCtrl *pRE) {

CHARFORMAT cf;

cf.dwMask=CFM_BOLD|CFM_COLOR;

cf.dwEffects = CFE_BOLD;

cf.crTextColor=RGB(0,0,255);

}

Các hàm còn l i vi t t ng t

Tham kh o các hàm, các c u trúc có liên quan trong MSDN

Ngày đăng: 24/01/2014, 02:20

TỪ KHÓA LIÊN QUAN

w