掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
jpeg表示するには?(基本的なクラスの使い方) (ID:55943)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> CPicture pic; をただjpegDlg.hに書くと > ・error C2146: 構文エラー : ';' が、識別子 'pic' の前に必要です。 > ・error C2501: 'Cjpeg2Dlg::CPicture' : 識別名を宣言するのに、型が指定されていません。 > 等が出ます。 お察しの通り、CPicture.h を include していないためです。 > そこで#include "CPicture.h"してみると、 > ・error C2011: 'CPicture' : 'class' 型の再定義 > というエラーが出ます。 cpp ファイルのほうでも include していませんか? CPicture.h にはインクルードガード(多重インクルード防止策)がされていないため、h と cpp に CPicture の定義を2度書いたことになり、エラーになります。 h だけで include してください。 > jpegDlg.cpp内のBOOL CjpegDlg::OnInitDialog()の上にCPicture pic; > を直接書いてみたらエラーが消えましたがこれでも良いのでしょうか? 望ましくはありません。 CjpegDlg のメンバ変数として宣言するとよいでしょう。 > pic.DrawPicture();の引数をどうすればよいかわかりません。 第一引数はデバイスコンテキストハンドルといい、描画対象を指定します。 第二、第三引数は、描画位置の左上の座標です。 第四、第五引数は描画する画像のサイズですね。 手順をば。 1. jpegDlg.h の先頭で #include "CPicture.h" します。 jpegDlg.cpp ではしてはいけません。 2. CjpegDlg のメンバ変数として CPicture m_pic; とでも宣言しておきます。 3. OnBnCLickedButton1 で m_pic.LoadPicture() でファイルを読み込み、成功したら Invalidate() します。 ちなみに Invalidate() は、「再描画せよ」という命令です。 4.OnPaint の else の方に、こんなコードを書いてみましょう。 CClientDC dc( this ); CRect rect; GetClientRect( &rect ); m_pic.DrawPicture( dc.GetSafeHdc(), 0, 0, rect.Width(), rect.Height() );
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.