お世話になります。
開発環境Win7 VisualStudio2010 VC++ MFC でHtmlに載せるActiveX(OCX)を作成しています。
OCXの作成は初めてでして、ネットでいろいろ調べているのですがなかなか思うように表
示できません。(ブラウザはIE11です)
※ActiveXのデフォルトの円表示はできているので、HTMLへの組み込みは間違えていません。
OCXのサンプルも見つけられず、以下のようなコードを書いてみたのですがHTML画面は
真っ白になってしまいます。
何が悪いのか、ご指摘を戴けますようお願い致します。
JPGファイルを使うのでGDI+を利用する事にしました。
CMyTESTCtrl::CMyTESTCtrl() //コンストラクタでGDI+開始
{
InitializeIIDs(&IID_DMyTEST, &IID_DMyTESTEvents);
Gdiplus::GdiplusStartupInput input;
Gdiplus::GdiplusStartup(&token,&input,NULL);
}
CMyTESTCtrl::~CMyTESTCtrl() //デストラクタでGDI+終了
{
Gdiplus::GdiplusShutdown(token);//ISHII ADD
}
// OnDraw - 描画関数で、画像表示
void CMyTESTCtrl::OnDraw(
CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid)
{
if (!pdc)
return;
// GDI+のGraphicsオブジェクトを用意して描画準備
HDC hdc = pdc->GetSafeHdc();
Gdiplus::Graphics graphics(hdc)
Gdiplus::Image image(L..\\test.JPG);
graphics.DrawImage( &image, 0, 0 );
}
また、他にもボタンやらラベルやら用意しなくてはならないのですが、どうしたら実現出
来るのか分からない状態です。VC++でのOCXのことが書いてある書籍やサンプルHPなどを
ご存知でしたら教えていただけると大変助かります。よろしくお願いします。
>ITOさま
いつもありがとうございます。
やっと、画像を表示する事ができました。(更に写真表示枠を作りその中にて画像の大き
さや位置を調整するという作業があるので先は長いです)
以下のコードで実現できました。
if (!pdc)
return;
HDC hdc = pdc->GetSafeHdc();
Gdiplus::Graphics graphics(hdc);
Gdiplus::Image image(LC:\\tmp\\IMG.JPG);
int width = image.GetWidth();
int height = image.GetHeight();
Gdiplus::Bitmap offScreenBitmap(width, height);
Gdiplus::Graphics offScreen(&offScreenBitmap);
// 描画処理 ↓この書き方で画像のちらつきがなくなるみたいです
offScreen.DrawImage(&image , 0 , 0);
graphics.DrawImage(&offScreenBitmap, 0, 0);
これからもよろしくお願いします。
クローズ忘れました。
>(更に写真表示枠を作りその中にて画像の大き
>さや位置を調整するという作業があるので先は長いです)
FormViewにして、picture controlを使えば枠等も楽かも知れません。