A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
★補足に付いて回答。
・最初にこの質問は最終的に何を行いたいのでしょうか?
今やりたいことはビットマップのイメージ内容を変数に代入したいようですが
その後にウインドウに描画(表示)したいのですか?それともアニメーション?
・回答者 No.3 さんの補足を読むと Windows プログラミングは経験が無いみたいですね。
単純に既存のビットマップをウインドウに描画(表示)するだけなら2次配列に
イメージ内容を読み込まなくても LoadImage() または LoadBitmap() という Win32 APIの
関数を使って読み込みます。すると戻り値に HBITMAP というハンドルを返しますので
これを使って簡単に BitBlt() 関数などで描画(表示)できます。
なお HBITMAP ハンドルにはビットマップのイメージ内容が既にメモリ内に読み込まれています。
別に2次配列に入れなおす必要も無いです。この『ハンドル』を利用すれば良いので。
・下に単純に読み込むだけのサンプルを載せておきます。
サンプル:
LPCTSTR lpPath = TEXT("C:\\…\\sample.bmp"); ←ファイル名
HBITMAP hBmp;
if ( (hBmp = LoadImage(NULL,lpPath,IMAGE_BITMAP,0,0,LR_LOADFROMFILE)) == NULL ){
/* ビットマップのファイルが読み込めないエラー(存在しないとか) */
}
else{
/* 読み込めたらここで描画処理 */
}
ちなみに:
HANDLE LoadImage(
HINSTANCE hinst, // インスタンスのハンドル
LPCTSTR lpszName, // イメージの名前または識別子
UINT uType, // イメージのタイプ
int cxDesired, // 希望する幅
int cyDesired, // 希望する高さ
UINT fuLoad // ロードのオプション
);
その他:
・上記の API 関数で簡単に HBITMAP ハンドルに読み込めます。
読み込んだハンドル(メモリ)をプログラムの終了前に破棄して下さい。
破棄の仕方は『DeleteObject( hBmp );』の1行で良いです。
・描画するときには
(1)描画するデバイスコンテキストを取得
(2)CreateCompatibleBitmap() で(1)と互換のあるメモリデバイスコンテキストを作成
(3)SelectObject() で (2) に HBITMAP のハンドルを関連付ける
(4)BitBlt()、StretchBlt() などで描画
こんなステップになります。
・とりあえず開発環境(OS)、グラフィック環境(Win32 API、DirectX、OpenGLどれ)を
お聞きしたいですね。回答者 No.3 さんの補足で分からないとなっていますが
これが分からないと上記のように勝手に Windows プログラミングだと決め付けて
回答しちゃいますよ。私は。これであっていれば良いが…。
・その他は下の『参考URL』の『C+API』を読みましょう。
一番下には『C++ Builder でのプログラミング』で『お絵描きソフトを作ってみる』が
あります。あまり詳しくないけど。
・以上。参考にどうぞ。
参考URL:http://www.sm.rim.or.jp/~shishido/windows.html
回答していただいた皆さんありがとうございました。
何か質問の内容が変わったようなきがするので、
具体的に書いてもう一度質問したいと思います。
ありがとうございました。
No.4
- 回答日時:
>ただ、もともとあるビットマップイメージを
>割り当てたいだけなのですが。
>初心者過ぎてすみません。
グラフィックの表示ですが、c++builderにはVCLがあったのを思い出しました。それを使うのがセオリーだと思いますので、それを使いましょう。
で、c++builderのVCLは専門外なのでサイト紹介しかできません。
http://www2.ttcn.ne.jp/~tkky/index.htm
http://ww4.tiki.ne.jp/~yonyon/programing/bcb/lec …
参考になれば良いんですが。
「C++ Builder / Turbo C++ 質問の木」
http://gimite.net/bcbqtree/qtreemain.cgi
というのもありますから活用してください。
>型宣言はchar型です。
文字列"あ"は、charのポインタ型にしか代入できません。
基本的なC言語の文法も勉強不足かな?本をもう一度読み直してみましょう。
No.3
- 回答日時:
Oh-Orangeさんじゃないですが、まずグラフィックを表示するために使用する予定のライブラリ、APIを教えてください。
(1)WindowsAPI
(2)DirectX
(3)DXライブラリ等のグラフィックライブラリ。
(4)よく分からない。
(5)その他。その場合は名前を教えてください。
ちなみに、
a[1][1]="あ";
a[2][1]="い";
でエラーでない型宣言は、
char *a[3][2];
ですが同じですか?
違っていたら、どんな型宣言をしていたか教えてください。
この回答への補足
回答ありがとうございます。
(4)です。
型宣言はchar型です。
ただ、もともとあるビットマップイメージを
割り当てたいだけなのですが。
初心者過ぎてすみません。
No.2
- 回答日時:
画像の場合はもっと沢山の文字を格納する感じになる
HTMLのような a[3][1]="<img src=xx.jpg>" という形ではない。
ファイル操作を行い読み込まなければならない。
No.1
- 回答日時:
★画像は割り当てられないです。
・画像のパス名か、画像データの内容を char 型の配列に入れるなら出来ますけど。
>しかし、この配列に画像を割り当てる方法がわかりません。
↑
意味が良く分かりません。
何がしたいのですか?
・以上。補足要求です。
この回答への補足
回答ありがとうございます。
画像は割り当てられないのですか・・自分が間違っていたようです。
「画像データの内容を char 型の配列に入れる」
↑この場合どうやって記述するのでしょうか。
初歩的過ぎかもしれませんが、教えていただければ幸いです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) python質問 1 2023/08/14 11:54
- Perl perlで2次元配列をサブルーチンに値渡しで渡す 5 2022/12/17 18:49
- C言語・C++・C# C#の問題です。 文字列型の配列 s[100] にキーボードから入力された100文字以内の文字列(単 2 2022/06/22 15:18
- その他(プログラミング・Web制作) FORTRAN77の配列(除算) 2 2023/02/01 14:34
- マウス・キーボード Google検索の英語キーボード 英語のキーボードの配列が元に戻らなくなりました まえの配列は左上に 1 2022/06/19 11:41
- Visual Basic(VBA) Vbaで数式をポーランド記法に変換するコードを作って実行しようとするとフリーズします。 1 2022/05/24 17:53
- Excel(エクセル) 配列操作について 5 2023/04/18 07:27
- JavaScript 二次元配列の全要素の全要素を区切り文字無しで連結する最も単純な書き方を教えてください 3 2023/06/09 12:51
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- Microsoft ASP プログラミング関係で質問です。 3 2022/10/11 16:06
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
配列を使わずに、変数名を動的...
-
C言語 配列の長さの上限
-
C言語初心者 構造体 課題について
-
複数の選択範囲の行番号を個別...
-
C言語初心者 ポインタについて...
-
unsigned char配列への入力の仕方
-
入力関数(配列4個)を作成するプ...
-
配列で格納したものをmsgboxで...
-
ExcelVBAで質問です。離れた二...
-
配列の参照渡しで型が一致しま...
-
配列をEraseしてもメモリが開放...
-
C言語で特定列だけを抽出して配...
-
VBで動的なメモリの確保
-
スマホの数字キーをISOの配置に...
-
【速いブラインドタッチ】手を...
-
char型の配列 char buff[20] = ...
-
int型をchar型に(右詰で)代入...
-
パイソンの
-
先頭アドレスとは何ですか?
-
c++によるジャンケンプログラム
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語 配列の長さの上限
-
配列の参照渡しで型が一致しま...
-
配列を使わずに、変数名を動的...
-
VBで構造体の配列を関数に渡す...
-
配列で格納したものをmsgboxで...
-
unsigned char配列への入力の仕方
-
C# Listを使わずに2次元配列の...
-
C# 配列の変数宣言について。
-
擬似コード 長さがmの配列でな...
-
【速いブラインドタッチ】手を...
-
パイソンの
-
C言語初心者 ポインタについて...
-
ExcelVBAで質問です。離れた二...
-
配列を含む構造体の初期値について
-
複数の選択範囲の行番号を個別...
-
Functionの戻り値を2次元配列...
-
C++ vectorに配列をプッシュしたい
-
先頭アドレスとは何ですか?
-
テキストファイルから文字列を...
-
Redimした動的配列はEraseする...
おすすめ情報