忍者ブログ
ゲームについてつらつらと。
[61] [60] [59] [58] [57] [56] [55] [54] [53] [52] [51]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

あれからGDI+を使ってみたけど全然駄目ですね。
ソースはこれで間違ってないはずなのになんでだろう。

・・・と、うなってたら
OnPaint関数を手書きで追加していたのが原因でした。
プロパティから追加しないとOnPaintとしての働きは無いのかー。そうかー。

今回は結構調べるのが骨だったのでソースも置いときます。
Imageを使う版とGDI+版。


画像huzimi.pngを
ID:IDC_HOKOU、コントロール変数:m_xcHokouのピクチャボックスに貼り付け。
ピクチャボックスの枠の調整はこのコードではImageでのみ有効です。


-------------------------------------------------------------------
//imageを使う場合はインクルードしておく
#include "atlimage.h"
#include < CString >

//GDI+を使う場合こっちをインクルード
#include
#pragma comment (lib, "Gdiplus.lib")
using namespace Gdiplus;


void Charadb::OnPaint()
{
CPaintDC dc(this);
// TODO: ここにメッセージ ハンドラ コードを追加します。
// 描画メッセージで CDialog::OnPaint() を呼び出さないでください。
{
//AfxMessageBox("実行確認用メッセージ消して良し");

CImage img;
img.Load("huzimi.png");

//ピクチャコントロールのデバイスコンテキストを取得
HDC hDC;
hDC = m_xcHokou.GetDC()->GetSafeHdc();

//Image===================================================

SetStretchBltMode(hDC,STRETCH_HALFTONE);//StretchBltのモード設定

//画像サイズそのままで貼り付ける場合
//img.BitBlt(hDC,0,0,img.GetWidth(),img.GetHeight(),0,0,SRCCOPY);


//サイズ2倍で貼り付ける場合
img.StretchBlt(hDC,0,0,img.GetWidth()*2,img.GetHeight()*2,0,0,img.GetWidth(),img.GetHeight(),SRCCOPY);



//ピクチャボックスの枠を画像サイズ@2倍角に合わせて描写(デフォルトの枠は事前にプロパティをいじり消しておく)
CPaintDC dc2(GetDlgItem(IDC_HOKOU));
CPen myPen,myPen2;
myPen.CreatePen(PS_SOLID, 2, RGB(230, 230, 230));//ペン1
myPen2.CreatePen(PS_SOLID, 2, RGB(100, 100, 100));//ペン2

dc2.MoveTo(0,img.GetHeight()*2);//線を引く始点設定

dc2.SelectObject(&myPen2);//ペンを設定
dc2.LineTo(0,-1);//線を引く

dc2.SelectObject(&myPen2);
dc2.LineTo(img.GetWidth()*2,0);

dc2.SelectObject(&myPen);
dc2.LineTo(img.GetWidth()*2,img.GetHeight()*2);

dc2.LineTo(0,img.GetHeight()*2);


img.Destroy();//Image解放


//GDI=====================================================
//GDI+を使う準備

using namespace Gdiplus;
GdiplusStartupInput gdiplusStartupInput;
ULONG_PTR gdiplusToken;
GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
//準備終わり

Graphics graphics(hDC); //デバイスコンテキスト
Bitmap image(L"huzimi.png"); // イメージロード、ファイル名の前の L は忘れない
graphics.DrawImage(&image, 0, 0);//イメージ描写

GdiplusShutdown(gdiplusToken);//解放

}
PR

コメント


コメントフォーム
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード
  Vodafone絵文字 i-mode絵文字 Ezweb絵文字


トラックバック
この記事にトラックバックする:


忍者ブログ [PR]
ブログ内検索
プロフィール

HN:
山田
誕生日:
07/17
趣味:
ゲーム製作
好みのタイプ:
無印ポポロクロイス物語
無印アークザラッド
That's QT
バハムートラグーン
花と雨と太陽と
砂のエンブレイス
デカボイス
チュウリップ
サテラビュー関連
メッセ
aonori_hataraotmail.com (一部画像なので手打ちでどうぞ)
タロット占い