社区
ATL
帖子详情
我做了一个activeX控件,继承了库存font属性,现在在使用的时候想把当前字体改为隶书黑体,该怎么办?
yushulei
2003-10-16 11:44:26
我做了一个activeX控件,继承了库存font属性,现在在使用的时候想把当前字体改为隶书黑体,该怎么办?
想调用SetFont函数,但不知道怎么传参数,看了msdn还是不太明白,可能是英文不太好吧!还有字体大小等等都不知道怎么传进去。
如果建一个CFont对象也不行,用setfont也不行。郁闷!请高手赐教!谢谢。
...全文
120
11
打赏
收藏
我做了一个activeX控件,继承了库存font属性,现在在使用的时候想把当前字体改为隶书黑体,该怎么办?
我做了一个activeX控件,继承了库存font属性,现在在使用的时候想把当前字体改为隶书黑体,该怎么办? 想调用SetFont函数,但不知道怎么传参数,看了msdn还是不太明白,可能是英文不太好吧!还有字体大小等等都不知道怎么传进去。 如果建一个CFont对象也不行,用setfont也不行。郁闷!请高手赐教!谢谢。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yushulei
2003-10-28
打赏
举报
回复
to ayqlj()
谢谢你的帮助,你给我发的欣我才看到,因为公司里上国外网站很慢,经常打不开·
我慢慢研究研究,因为最近忙了起来,可能耽搁一端时间,以后要是不懂还请继续指教,
谢谢。
yushulei
2003-10-24
打赏
举报
回复
setfont是继承控件的库存font属性后自带的。
ayqlj
2003-10-24
打赏
举报
回复
ATL并没有完全实现内置字体属性,它提供了内部成员变量指向IFontDisp接口,可是你仍然需要进行OLE字体的初始化,以下代码是演示:
在你的控件类的构造函数中加入以下代码:
CMyCtl()
{
static FONTDESC _fontDesc =
{ sizeof(FONTDESC), OLESTR("MS Sans Serif"),
FONTSIZE( 12 ), FW_BOLD,
ANSI_CHARSET, FALSE, FALSE, FALSE };
OleCreateFontIndirect( &_fontDesc,IID_IFontDisp,(void **)&m_pFont );
}
在你需要使用的地方使用以下代码,一般是在控件的OnDraw方法中,如下:
//取得字体
CComQIPtr<IFont, &IID_IFont> pFont( m_pFont );
if ( pFont )
{
HFONT hOldFont = 0;
HFONT hFont;
pFont->get_hFont( &hFont );
hOldFont = (HFONT) SelectObject( hdc, hFont );
// 使用它...
if ( hOldFont )
SelectObject( hdc, hOldFont );
}
一般在VC6的ATL向导中选择了Font字体属性的话,向导会在IDL文件中自动产生以下代码,没有的话手工加入以下声明(加粗部分):
#include <olectl.h>
import "oaidl.idl";
[
uuid(E63A22F1-9BD3-11D0-A6D7-0000837E3100),
version(1.0),
helpstring("NoteIt 1.0 Type Library")
]
library NOTEITLib
{
importlib("stdole32.tlb");
importlib("stdole2.tlb");
// Interface is now inside the library block
[
object,
uuid(E63A2306-9BD3-11D0-A6D7-0000837E3100),
dual,
helpstring("INoteCtl Interface"),
pointer_default(unique)
]
interface INoteCtl : IDispatch
{
...
[propputref, id(DISPID_FONT)]
HRESULT Font([in]IFontDisp* pFont);
[propput, id(DISPID_FONT)]
HRESULT Font([in]IFontDisp* pFont);
[propget, id(DISPID_FONT)]
HRESULT Font([out, retval]IFontDisp** ppFont);
...
};
...
}
warmchang
2003-10-23
打赏
举报
回复
LeeZi(临渊羡鱼,不如退而结网) ( ) 的方法是对的!
ayqlj
2003-10-22
打赏
举报
回复
setfont什么意思,是自己写的函数吗?
还是一个接口?
LeeZi
2003-10-20
打赏
举报
回复
在控件的SetClientSite不要调用GetAmbientFontDisp。
换成:
FONTDESC DefaultFont;
ZeroMemory(&DefaultFont, sizeof(DefaultFont));
DefaultFont.cbSizeofstruct = sizeof(DefaultFont);
DefaultFont.lpstrName = L"隶书";
DefaultFont.cySize.Hi = 0;
DefaultFont.cySize.Lo = 10 * 10000;
OleCreateFontIndirect(&DefaultFont, IID_IFontDisp, reinterpret_cast<void**>(&m_pFont));
yushulei
2003-10-20
打赏
举报
回复
还是不能用setfont啊?
yushulei
2003-10-20
打赏
举报
回复
恕在下笨拙啊!我看不懂,这该用在什么地方呢?
SetClientSite和GetAmbientFontDisp也不知道什么用处。
我现在最重要的问题是不知道怎么使用SetFont,也就是不知道怎么给他
传参数,以改变字体的属性。请继续,谢谢。
ayqlj
2003-10-17
打赏
举报
回复
LPFONT m_pFont;
FONTDESC fd =
{sizeof(FONTDESC), OLESTR("隶书"), FONTSIZE( 10 ),
FW_NORMAL, ANSI_CHARSET, FALSE, FALSE, FALSE };
::OleCreateFontIndirect(&fd, IID_IFont, (void**)&m_pFont);
这样行吧?
yushulei
2003-10-16
打赏
举报
回复
up
wudhu
2003-10-16
打赏
举报
回复
gz
VC
控件
的
字体
控制 若将
字体
设置成“宋体、仿宋—GB2312、
隶书
、幼圆”中的某一
字体
时,需将lfCharSet设置成GB2312—CHARSET才使设置的
字体
有效...
http://www.wanfangdata.com.cn/qikan/periodical.articles/jsjyy/jsjy99/jsjy9902/990219.htm VC++
控件
的汉字及颜色的编程控制 丁有和 孙健 摘 要 文章着重讨论如何用...
VC++
控件
的汉字及颜色的编程控制
VC
控件
的
字体
控制 若将
字体
设置成“宋体、仿宋—GB2312、
隶书
、幼圆”中的某一
字体
时,需将lfCharSet设置成GB2312—CHARSET才使设置的
字体
有效 在Windows应用程序中,VC++ 5.0为编程人员提供了各种
控件
来...
html学习 (转) 个人认为比较全的
1.
字体
设置 让我们首先从
字体
设置开始。 在HTML代码里,
字体
的定义并不是很难,我们只需用&... 标签原则上要求成对出现,即在被修饰的
字体
前
使用
<
font
>引导,在被修饰的文字后用</
font
>结尾。下面给出例...
VB操作EXCEL表的常用方法
VB是常用的应用软件开发工具之一,...但由于VB与EXCEL由于分别属于不同的应用系统,如何把它们有机地结合在一起,是
一个
值得我们研究的课题。 一、 VB读写EXCEL表: VB本身提自动化功能可以读写EXCEL表,其方法如下
用C++Builder轻松创建票据套打组件
在网页中实现票据套打的方法很多,但开放源代码的并不多,在这里提供一种简单的方法实现简单的票据打印供大家参考。开发工具:Borland C++Builder 6.01、打开C++Builder,点击菜单File>>Close All关闭系统自动创建的...
ATL
3,245
社区成员
48,537
社区内容
发帖
与我相关
我的任务
ATL
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
复制链接
扫一扫
分享
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章