...ing logging 4.0

はてなブログに移行しました。D言語の話とかいろいろ。

2023-01-01から1年間の記事一覧

DFL: RichTextBoxのサンプルコード

RichTextBox(リッチエディットコントロール)のサンプルコードです。 全文を貼ると長くなるのでソースはリンク先を参照してください。 https://github.com/Rayerd/dfl/blob/master/examples/richtextbox/source/richtextbox_sample.d サンプルを起動すると…

PCを新調した

OSが入ったHDDをSSDにクローンしたけどブートができなくて焦った~。 ブートマネージャーが旧Dドライブ(Windows Vista入り)になってて、旧Cドライブと旧Dドライブにブートローダーがあって、デュアルブートしていたらしい。 一度全部のHDDを外してSSDだけに…

ビットマップのコピー・アンド・ペースト関連リンク集

ブックマーク整理のためここへ吐き出す。 ビットマップ関係 ビットマップファイルフォーマット BMP(ビットマップ)のファイルフォーマット ビットマップファイルフォーマット | イメージングソリューション BMPファイルのフォーマット ビットマップファイルの…

RichEditコントロールからテキストを取得する

DFLのRichTextBox用にせっかく書いたけど不要だった・・・ここで供養する。 // この辺のインポートが必要だけど競合するので選択インポートする。 private import dfl.internal.winapi; private import core.sys.windows.richedit : GETTEXTEX, GETTEXTLENGT…

DFL: ToolBarのサンプルコード

ツールバーのサンプルコードです。 長くなるのでソースコードはこちらにリンクを張っておきます。 https://github.com/Rayerd/dfl/tree/master/examples/toolbar/source 下図の左から、普通のボタン、トグルボタン、セパレータ(区切り)、ドロップダウンボ…

DFL: ContextMenuのサンプルコード

コンテキストメニューのサンプルです。 特に難しいことはないですね。 ただ、mouseDownイベントを使って右クリックを検出した方が、DFLらしいかもしれません。 import dfl; import core.sys.windows.windows; version(Have_dfl) // For DUB. { } else { prag…

DFL: Timerのサンプルコード

Timerクラスのサンプルコードです。 Startボタンでカウントアップ開始、Stopボタンで停止します。 import dfl; import std.conv; version(Have_dfl) // For DUB. { } else { pragma(lib, "dfl.lib"); } class MainForm : Form { private Label _label; priva…

DFL: NotifyIconのサンプルコード

NotifyIconのサンプルコードです。 NotifyIconというのは、タスクバーに出るアイコンです。 上のスクリーンショットで右端にあるフェイスマークを表示しています。 import dfl; class MainForm : Form { private NotifyIcon _notifyIcon; public this() { th…

HBITMAP(DDB)からBITMAPINFO(DIB)を得る

GetDIBits()を使う、以上。 で終わる話なのですが、BITMAPINFOを作成するために必要なメモリサイズを算出するのに手こずったので、結果だけ置いておきます。 なお、このコードで作成されるのは、スクリーンショットを撮ったときに得られるビットマップデータ…

BITMAPINFO(DIB)からHBITMAP(DDB)を得る

CreateDIBitmap()を使う、以上。 で終わる話ではあるのですが、パックされたビットマップの場合、BITMAPINFOの先頭アドレスとBITMAPINFOHEADERの内容から、後に続くカラーマスクとカラーパレットのバイト数を算出して、ピクセルデータ列の先頭アドレスを求め…

BITMAPINFOから画像データ全体のバイナリ列を得る

かなり手こずったので結果だけ置いておきます。 ubyte[] getBitmapBuffer(BITMAPINFO* pbi) { assert(pbi); const uint bitsPerPixel = pbi.bmiHeader.biPlanes * pbi.bmiHeader.biBitCount; const uint colorMaskBytes = { if (pbi.bmiHeader.biCompression…

DFL: PictureBoxのサンプルコード

dfl/examples/picturebox at master · Rayerd/dfl · GitHub 画像ファイルを簡単に表示することができるPictureBoxクラスのサンプルです。 Bitmapクラスで読み込める形式の画像ファイルなら表示できるようで、bmp、jpgは表示できました。 未確認ながらgifも可…

DFL: ClippingFormのサンプルコード

https://github.com/Rayerd/dfl/tree/master/examples/clippingform 透過する部分を白色にしたビットマップを与えて、矩形でないウィンドウを作れるClippingFormのサンプルコードです。 ウィンドウタイトル(キャプション)がなく、かつ、常に最前面に表示さ…

DFL: Clipboardのサンプルコード

Clipboardクラスを使ってコピー・アンド・ペーストをする処理のサンプルコードです。 dfl/clipboard_sample.d at master · Rayerd/dfl · GitHub 簡単な使い方 長くなるのでここにサンプルコードを転記するのは止めておきますが、簡単に使い方を示します。 い…

DFL: やることリスト

TODO [-] application.d [-] base.d [x] button.d [x] clipboard.d より多くの標準クリップボード形式のサポート [x] clippingform.d [-] collections.d [x] colordialog.d [-] com.d [x] combobox.d [-] commondialog.d [-] control.d [x] data.d より多く…

DFL: ProgressBar のサンプルコード

DFL の ProgressBar クラスを更新しました。 表示形式を動的に設定できるようにしたり、マーキー形式の描画間隔を設定できるようにしたり。 さて、Windows の仕様で、ブロック形式(BLOCKS)の表示方法は、クラシックスタイルでしか使えません。こちらがクラ…

DFL: ToolTip の機能とサンプルコードの追加

ToolTip のサンプルコードを作成するついでに WinForms にあってこちらにない機能をいくつか追加しました。 バルーンタイプのツールチップ アイコンとタイトルの表示 アニメーション表示(フェードイン)なし フェードアウトなし 複数行の表示 &記号がアクセ…

DFL: GetOpenFileName と GetSaveFileName

DFL の OpenFileDialog では GetOpenFileName が使われていて、SaveFileDialog では GetSaveFileName が使われています。それぞれ、表示されるダイアログがプレースバーがないタイプでした。 プレースバーがあるタイプのダイアログにするには OPENFILENAME …

DFL: コモンダイアログのサンプルコード

ボタンの配置が微妙ですが、コモンダイアログのサンプルコードを追加しました。 以下のクラスのサンプルを含みます。 OpenFileDialog SaveFileDialog FolderBrowserDialog FontDialog ColorDialog あと PrintDialog が存在しますが、DFL には実装されていま…

DFL: ImageListのサンプルコード(ComboBoxも)

ここにコードを貼るのは省略しますが、ImageListのサンプルコードを追加しました。 下のリンクから参照してください。 dfl/examples/imagelist at master · Rayerd/dfl · GitHub ついでにComboBoxも使っているので、こちらのサンプルとしても使えます。 挙動…

DFL: ドラッグアンドドロップ(3)~IDropSource編~

前回、IDropTarget インタフェースを使って、自アプリへのドロップを実装しました。 受け渡すデータに対応する IDataObject インタフェースを実装したクラス、ドロップ先に対応する IDropTarget インタフェースを実装したクラス、ドラッグ元に対応する IDrag…

DFL: ドラッグアンドドロップ(2)~IDropTarget編~

前回、DragAcceptFiles() を使い、自アプリへのファイルのドロップを簡単に実装できましたが、この方法ではできないことが色々あります。 ファイル以外のドロップができない(OLE DnD が必要)。 自ウィンドウからドラッグを開始できない(OLE DnD の IDropS…

DFL: ドラッグアンドドロップ(1)~DragAcceptFiles編~

DFL で Drag&Drop がうまくいきません、詳しい人教えてください!テストコードは http://t.co/ngKcdrHTtN #dlang— Seiji Fujita (@sfujita) 2014年2月9日 ソースはリンク切れのため今となっては詳細不明。 DFL のドラッグアンドドロップがうまく動かないとい…

DFL: Splitter コントロールのサンプルコード

github.com Splitter コントロールには最小幅を設定するプロパティがありますが、最大幅を設定するプロパティがないので、サンプルコードでは自前で実装しています。 方法は、Splitter の左又は上にあるパネルのサイズが変更されたときに、所定の最大幅を超…

DFL: ListViewコントロールのサンプルコード

github.com View.DETAILS: View.LIST: ListView コントロールのサンプルですが、アイコンを用意していないので、view プロパティに View.LARGE_ICON と View.SMALL_ICON を設定しても見栄えが悪いです。 あと、リストビューの詳細表示の1列目にはセンタリン…

DFL: ビジュアルスタイルの有効化

追記あり。 続・追記あり。 DFLに限らないけれども。 VisualStyle有効: VisualStyle無効: 以下のコードをソースファイルに追加してdmdでビルドすれば、実行ファイルと同時にマニフェストファイルが生成される。 実行ファイルを起動すれば、ビジュアルスタ…

DFL: StatusBarコントロールのサンプルコード

github.com ウィンドウにステータスバーを表示し、3つのパネルを追加します。 各パネルは borderStyle プロパティに StatusBarPanelBorderStyle を設定することで3種類の見た目に変更できます。 ウィンドウ内を左クリックすると左端のステータスバーにクリ…

DFL: TabContolのサンプルコード

github.com パネルコントロールの一種であるタブコントロールのサンプルコードを追加。 いつもどおり、WinFormsと同じ感じでできた。 パネル系のクラスを使うのは初めて書いたので、初めてついでにDockStyleを設定してみた。 ちゃんと動いているようだ。 imp…

DFL: Button、RadioButton及びCheckBoxのサンプルコード

ダイアログボックス的なやつなので、ウィンドウサイズを変更できないように設定している。 Doneボタンで各種設定を文字列で表示する。このボタンはフォーカスがこのウィンドウ内のどこにあっても、エンターキーで押すことができるように設定している。 Cance…

DFL: Labelコントロールのサンプルを追加

ほとんど又は全く触ったことがないコントロールの動作確認を兼ねて、サンプルコードを書いてみる。 まずは、Label (Static) コントロール。 コードは、本家の下記チュートリアルより。 wiki.dprogramming.com import dfl; version(Have_dfl) // For DUB. { }…