LPDISPATCH型 の使い方について – プログラミング – Home

LPDISPATCH型 の使い方につい...
 
通知
すべてクリア

[解決済] LPDISPATCH型 の使い方について


やす
 やす
(@やす)
ゲスト
結合: 20年前
投稿: 27
Topic starter  

以前の質問「引数 LPDISPATCH の使い方について」でOCXの引数にLPDISPATCH型を渡す回
答として下記が回答されていました。

>IFont、IFontDisp をヘルプで引くと解説が出てきます。

VSFLEXで同様にフォントの設定を行いたいのですが、CFONTのCreateFontで作成したフォ
ントをLPDISPATCH型に変更することは可能でしょうか。


引用未解決
トピックタグ
Kelly
 Kelly
(@Kelly)
ゲスト
結合: 16年前
投稿: 13
 

OleCreateFontIndirect()を使ってIFontDisp*型のオブジェクトを作成し、
それを渡せば良いです。

CFontからの変換は、MFCソースのCOleControlContainer::CreateOleFont()の
コードが参考になると思います。


返信引用
aetos
(@aetos)
Noble Member
結合: 5年前
投稿: 1480
 

CFont から IFontDisp を作れればいいんでしょうが、方法がわかりません。
CFont::CreateFont の代わりに OleCreateFontIndirect を使うのはどうでしょうか。


返信引用
やす
 やす
(@やす)
ゲスト
結合: 20年前
投稿: 27
Topic starter  

Kelly さん回答ありがとうございます。
OleCreateFontIndirect()を使用することでフォントを設定することができました。
下記、OleCreateFontIndirectで検索したソースの抜粋です。

CFontでフォントを作成していましたが、下記で代用することにします。

//////////////////////////////////////////////////////////////
LPFONTDISP pOleFont = NULL;
FONTDESC fd;
fd.cbSizeofstruct = sizeof(FONTDESC);
fd.lpstrName = LMS ゴシック; //T2OLE(MS ゴシック);
fd.sWeight = 400;
fd.sCharset = SHIFTJIS_CHARSET;
fd.fItalic = 0;
fd.fUnderline = 0;
fd.fStrikethrough = 0;
fd.cySize.Lo = 22 * 100000;
fd.cySize.Hi = 0;
if (FAILED(::OleCreateFontIndirect(&fd, IID_IFontDisp, (void**)&pOleFont)))
{
pOleFont = NULL;
}
m_grid1.put_Font(pOleFont);   grid1:VSFLEX
//////////////////////////////////////////////////////////////


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました