http://www.itjxue.com  1970-01-01 08:00  来源:  点击次数: 

VC?如何获取一个控件内的字体

首先了解一下CHARFORMAT结构

SetDefaultCharFormat(

CHARFORMAT

cf

);

typedef

struct

_charformat

{

UINT

cbSize;

_WPAD

_wPad1;

DWORD

dwMask;

DWORD

dwEffects;

LONG

yHeight;

LONG

yOffset;

COLORREF

crTextColor;

BYTE

bCharSet;

BYTE

bPitchAndFamily;

TCHAR

szFaceName[LF_FACESIZE];

_WPAD

_wPad2;

}

CHARFORMAT;

其中bCharSet有如下值

lfCharSet

Specifies

the

character

set.

The

following

values

are

predefined:

ANSI_CHARSET

BALTIC_CHARSET

CHINESEBIG5_CHARSET

DEFAULT_CHARSET

EASTEUROPE_CHARSET

GB2312_CHARSET

GREEK_CHARSET

HANGUL_CHARSET

MAC_CHARSET

OEM_CHARSET

RUSSIAN_CHARSET

SHIFTJIS_CHARSET

SYMBOL_CHARSET

TURKISH_CHARSET

Korean

Windows:

JOHAB_CHARSET

Middle-Eastern

Windows:

HEBREW_CHARSET

ARABIC_CHARSET

Thai

Windows:

THAI_CHARSET

OnChangeFont()

是对话框中一按钮消息响应函数

void

CTransformDlg::OnChangeFont()

{

//

TODO:

Add

your

control

notification

handler

code

here

CHARFORMAT

cf;

LOGFONT

lf;

memset(cf,

0,

sizeof(CHARFORMAT));

memset(lf,

0,

sizeof(LOGFONT));

//判断是否选择了内容

BOOL

m_bSelect

=

(m_RichEditCtrlTS.GetSelectionType()

!=

SEL_EMPTY)

?

TRUE

:

FALSE;

if

(m_bSelect)

{

m_RichEditCtrlTS.GetSelectionCharFormat(cf);

}

else

{

m_RichEditCtrlTS.GetDefaultCharFormat(cf);

}

//得到相关字体属性

BOOL

bIsBold

=

cf.dwEffects

CFE_BOLD;

BOOL

bIsItalic

=

cf.dwEffects

CFE_ITALIC;

BOOL

bIsUnderline

=

cf.dwEffects

CFE_UNDERLINE;

BOOL

bIsStrickout

=

cf.dwEffects

CFE_STRIKEOUT;

//设置属性

lf.lfCharSet

=

cf.bCharSet;

lf.lfHeight

=

cf.yHeight/15;

lf.lfPitchAndFamily

=

cf.bPitchAndFamily;

lf.lfItalic

=

bIsItalic;

lf.lfWeight

=

(bIsBold

?

FW_BOLD

:

FW_NORMAL);

lf.lfUnderline

=

bIsUnderline;

lf.lfStrikeOut

=

bIsStrickout;

sprintf(lf.lfFaceName,

cf.szFaceName);

//strcpy(lf.lfFaceName,

cf.szFaceName);

CFontDialog

dlg(lf);

dlg.m_cf.rgbColors

=

cf.crTextColor;

if

(dlg.DoModal()

==

IDOK)

{

dlg.GetCharFormat(cf);

//获得所选的字体属性,如字体、颜色、大小等

if

(m_bSelect)

m_RichEditCtrlTS.SetSelectionCharFormat(cf);

//为选定的内容设定所选字体

else

m_RichEditCtrlTS.SetWordCharFormat(cf);

//为将要输入的内容设定字体//m_RichEditCtrlTS.SetDefaultCharFormat(cf);

//设置输入框内所有字符的字体,包括已经输入的和将要输入的字符

}

}CFont

说明

CFont

font;

VERIFY(font.CreateFont(

12,

//

nHeight

0,

//

nWidth

0,

//

nEscapement

0,

//

nOrientation

FW_NORMAL,

//

nWeight

FALSE,

//

bItalic

FALSE,

//

bUnderline

0,

//

cStrikeOut

ANSI_CHARSET,

//

nCharSet

OUT_DEFAULT_PRECIS,

//

nOutPrecision

CLIP_DEFAULT_PRECIS,

//

nClipPrecision

DEFAULT_QUALITY,

//

nQuality

DEFAULT_PITCH

|

FF_SWISS,

//

nPitchAndFamily

"Arial"));

//

lpszFacename

用java怎样把数据存到数据库中

只能写个大概的,要写数据到数据库中,先得在数据库中建库,库里建表,表里建字段,然后java里建立数据库连接,用SQL语言写数据到表中的字段

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();

//String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=数据库名"; //7.0、2000

String url="jdbc:sqlserver://localhost:1433;DatabaseName=数据库名"; //2005

Connection conn=null;

conn= DriverManager.getConnection(url,用户名,密码);

PreparedStatement pst=null;

pst=conn.prepareStatement("Insert Into grade(表名) Values (?)");

pst.setInt(1,你要写的整弄数据);

//pst.setString(2,你要写的字符串数据);

pst.addBatch();

pst.executeBatch();

下面是用visual studio (VC++中MFC)编译的一个程序,出了几个错误,不知道怎么解决,恳请高手帮忙。谢谢

楼上说的对,要是SelectGdiObject还有错,可以将SelectGdiObject换成SelectObject,很可能是这个错误,我在MSDN上未找到这个函数,可能是它错了。 要是是说sin,cos未找到标识符,可以在

stdafx.h中加入#include math.h ,但是一般的MFC程序会包含这个头文件,这就很奇怪

pdc-MoveTo (px=(int)x,py);

中的=应该是+吧

pdc-DeleteDC ();这句是错了的,因为原来使用new用堆来动态构造CClient对象,不用了的话,

应该用delete掉,而pdc-DeleteDC ();释放了pdc-m_hDC这个成员变量而已,其他成员数据以及

本身均并没有删除,会发生内存泄露。

还有就是【猪无为】说的

“或者根本就不要new出来CClientDC,给人感觉怪怪的,一般都是直接构造对象,如

CClientDC clientDC(this);

CClientDC* pdc = clientDC; “

这个说法是不对的,使用new或直接用栈来构造对象都是可以的,没有什么怪不怪的,只是

用new构造对象是一件很复杂的事,需要额外动用很多资源,所以在一般情况下不建议使用

堆(new)来构造对象,再说释放也得自己释放,是件麻烦事。

另外x=30 - 30 * cos(a)句是后边少了“;”的(猪无为)。

(责任编辑:IT教学网)

更多
上一篇:没有了

推荐CSS教程文章