CAD日記

主にAutoCADのことについて書いているけど、近頃は投資系ネタに注力している。自動売買、仮想通貨、PC関係、プログラミングなど。@caddiary

ソフト開発

【C#プログラミング】pictureBoxとBitmapで画面ズームと画面移動機能を実装したい

投稿日:2020年3月29日 更新日:

PDFアレコレでPDFを描画するために利用しているのがpictureBox。とっても便利なクラスで、PDFiumのでRenderした結果であるImageを渡すだけで済んでいる。こんな感じで。。

pictureBox1.Image = m_pdfDoc.Render(page, width, height, 100, 100, false);

m_pdfDoc.Renderの結果がpdfの指定ページの用紙全体なので、ページ全体の描画ができている。やりたいのはそれを拡大縮小すること。中ボタンのスクロールで拡大縮小、中ボタンドラッグで画面移動。1ページ分を1枚の図面と考えて、好きなところを拡大縮小したいという要求だ。中ボタンスクロールがページ移動とかぶるので、拡大縮小はCtrlを押した場合の動作とするべきだ。

あれこれググってただりついたのが以下サイト。
ピクチャボックスの画像をクリックして拡大、縮小表示できるようにする
これでよくわからないのは、Bitmapクラスを使っていること。pictureBox.ImageとBitmapは似たようなクラスであることはわかるんだけど、pictureBoxのPaintイベントでDrawImageしている点がよく理解できない。拡大縮小と画面移動をするのだから、拡大率と描画基準の座標を保持する必要がある。

以下の記事にヒントがあったが、VBで書かれていることと最終的にこうしたらうまくいったという形がはっきりしていないので、よくわからなかった。
PictureBoxに表示されている画像を拡大/縮小したい

午前中あれこれと試してみて答にたどり着けなかったのでいったんペンディング。PDFの好きな場所を、マウス中ボタン操作で拡大・縮小・移動させて、その場所に捺印したいのだ。こればっかりやっていると時間ばかりとられて成果が何も残せないので、今日のところは調査の途中経過を記して終わる。

-ソフト開発

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

PDFアレコレのソースコードをnoteで有料公開してみた

ブロガーのマネタイズとして一般的になってきたnote。 ただブログで記事を書いたところで、おいらのようなアラフィフサラリーマンじゃー課金してくれるわけがない。 なので、おいらの大きな武器であるプログラ …

PDFアレコレにパスワード入力と情報表示を追加

オープン時のパスワードが設定されているPDFでパスワード入力できるようにしたのと、タイトルや作成者の情報を確認できるようにした版はこちら。

no image

簡単インストーラ

インストーラと言えば、Install Shield です。最新バージョンは11.0で価格は44万1千円。高いんです。高機能版(Premier Edition)で、多国語(全33ヶ国語)対応という代物だ …

zipcopy Ver1.07リリース

zipcopyをリビジョンアップして、Ver1.07とした。 詳細は以下の通り。 Ver1.07 2020/3/1 ・zip圧縮と解凍、ファイルコピーと削除処理についてスレッド化して、これら処理中にダ …

デュアルモニターでツールバーをドラッグすると枠非表示で残像が出る

デュアルモニター環境で、MFCで作ったアプリをメインモニター側に出して、アプリのツールーバー(CToolBar)をドラッグすると、枠がメインモニター側に表示されずに、サブモニター側に枠と残像が表示され …