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 を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

no image

CEditでドラッグ&ドロップ

プログラミングから離れてしばらく経ってしまった。 プロジェクト管理をやっていると、プログラミングをやることができなくなる。 対人間の仕事の合間にプログラムをやることは、おいらには無理だった。 プログラ …

特定サーバーにアクセスするためのIDと一致するものだけを許容するプログラムをつくるには(1)

Windowsで動作させるC#のプログラムの話で、特定サーバーにアクセスするためのIDと一致するものだけを許容するプログラムを作ろうとしていて、なかなか難航したのでその記録を残しておく。ようするに、I …

コマンドラインからパラメータを指定すればテキスト抽出や画像変換ができるPDFアレコレを公開

exeがパラメータを受け取って、GUI操作でできていることをCUI操作でやってやろうじゃないかという企画。以下の記事を書いたのが1週間前。ここまで設計したなら実装しなきゃいかんということで、ヒマな週末 …

no image

SE

妻に勧められて、この本を呼んでみました。 SEのフシギな生態―失敗談から学ぶ成功のための30ヶ条 作者: きたみ りゅうじ 出版社/メーカー: 幻冬舎 発売日: 2005/12 メディア: 文庫 一言 …

インストーラ作成ツール調査(VisualStudio Installerと簡単インストーラ)

まずは20年ほど前に書いた記事「簡単インストーラ」を読み返してみた。当時はInstallShieldをよく知らんかったが、今はよくわかっているほうで、さらにはInstallShieldに慣れきってしま …