こんにちは。
質問は初めてですが、手詰まりのところがあるため質問させていただきます。
少しでもアドバイスいただけたらと思います。
現在、WINDOWプログラムを作成中です。
ダイアログ内(A)には以下のものがあります。
コンボボックス(Bダイアログ内)、ピクチャボックス、表示用ボタン、(コンボボックス
のある)画像選択ボタン。
コンボボックスには画像の名前が入っています(picture1; picture2)。
このコンボボックスを選択後、表示用ボタン押下でピクチャボックスに画像が表示され
るようにしたいです。
流れとしては
Aダイアログ起動→画像選択ボタン押下→Bダイアログ生成→コンボボックスから画像名
選択→表示ボタン→画像表示
です。
他所のアドバイスで
コンボボックスで選択された画像名を記憶する
というのがありました。
そこで
int index; // コンボボックス
CString record;
GetLBText(index, record);
としました。
それ以降、画像表示のプログラムを組んでいきましたが上手く表示されません。
お手数ですがご教授いただければと思います。
よろしくお願いします。
原因の切り分けはできていますか?
Comboboxからではなく画像名を[直接指定]した場合、正しく表示されますか?
レスいただきありがとうございます。
やってみた結果、直接読込では一瞬表示されてすぐに消えてしまいました。
恐らくこれが原因ではないのかと思うのですが、
この現象は何故起きるのでしょうか?
質問内容に十分な情報が無いので答えようが無いと思います(vv;)。
1.「上手く表示されない」とは、どのような状態ですか。
2.「画像」とは何ですか。
3.動作中、「画像」はどこにありますか。
4.コンボボックスのアイテムインデックスと、「画像」と
「画像名称」対応はどのような仕組みになってますか。
てなところが知りたい。
書かれている内容からでは単なる想像でしか書き込めないので
回答があさっての方向になるかもしれません。
なので、出せる情報はとにかく出す事が適切なレスをもらう為の早道です。
何を出せば良いのかわからないと言うのは、多分自分自身でもちゃんと
整理ができていない所為だと思うのでどうやったら自分の状況を理解して
もらえるのかと言う所に知恵を絞ると不思議と自己解決できたりします。
と、これだけではあんまりなので想像でレスしときます。
情報が足りない状態なのであさっての方向でもご容赦を。
すぐ消えてしまうと言う話なので読み込んだ画像の情報が
保持されずに開放されているのではないかと予想します。
つまり、ピクチャーボックスに設定するために読み込んだのに
設定した直後で開放してしまっているのでは?
表示させて起きたい間はずっと保持しておかないと駄目ですよ。
Windowsではプログラマが意図しないタイミングでも再描画が
発生します。例えば、他のウインドウが重なったとかが要因で
再描画指示がWindowsOSから来ます。
この時に再描画に使う画像が保持されていないと再描画時に
描画できなくて消えます。
想像で書いているので外しているかもしれません。