そいえば、ユーザーフォームが起動する時に走るもう一つのプログラムを忘れてた。
超大事です。
それと、各種宣言文。
コレを書いておけば色々と使えるようになります。
→
解説
UserForm_Activate
→UserFormがActivateした時に起動します。イニシャライズとは前後関係や何やらがある。
どちらかで出来て、どちらかで出来ないとかも有ったような?
今回は、UserFormのハンドルをとります。
その後、画像の元データを読み込んでます。
ハンドル
→WINDOWSでは、OS上の色んな物に番号をつけて管理してます。
で、ウィンドウにも番号があります。その番号(ハンドル)がわかればExcelでも色々できちゃうと。
ですが、ハンドルの取得方法ってのがとてもややこしくて、
ウィンドウの生成時に取得するのが手っ取り早く、間違えが少ない。
その結果できたのが上のプログラム。
概要はこんな感じ。
ウィンドウ生成時にget_handleヘUserFormのCaptionを渡す。
→FindWindowでhwndを取得
→GetDCでhdc(UserFormのハンドル)を取得
…細かいことは忘れました。
せっかく取得したhdcはウィンドウを閉じるまで有効なはずなので、大事にしましょう。
hdcが無いと、UserFormにBitBlt転送(絵を描く処理)ができませんので。
画像の元データを読み込んでるとこ
create_objで画像の読み込みとか、色々やってます。
先ほど取得したhDCを使って、メモリデバイスコンテキストを取得してます。
その後に画像を読み込んで、画像とメモリデバイスコンテキストを括りつけ。
…だったような?