名前 題名 ▼ おかぽんさん > PrintWindow のサンプルとして以下を参考にしました。 > > 366_コントロール類をビットマップ画像として取得 > http://mrxray.on.coocan.jp/Delphi/plSamples/366_CaptureControls.htm > > PrintWindow function > https://docs.microsoft.com/ja-jp/windows/desktop/api/winuser/nf-winuser-printwindow > > > 何をしたいのかというと、DBGridのセルに、ある状態を表すため RadioButton を > 2個表示しようかと。 > > (使ったことないのですが、)DBCtrlGird > (http://www.geocities.co.jp/SiliconValley-SanJose/2560/delphi4/db/DBCtrlGrid.htm) > のイメージで、DBCtrlGirdと違い、編集対象の行のみコントロールを表示し、 > それ以外の行は、イメージだけ表示してやろうかと思ったわけです。 > > で、Panelを継承してRadioButton を2つ表示するDBコントロールを作成できました。 > これを DBRadioControl とします。 > > これを、PrintWindow とか使って、カレントセル以外をイメージで表示したかったのですが、 > DBRadioControlを非表示にしてあると、RadioButtonが描画できない(T-T) > PaintToメソッドも描画してくれない。 > 真っ黒になったり、真っ白(パネルの背景色かな?目が悪くてよくわからなかった)になったり・・・ > > PrintWindowも、WM_PAINT 投げているだけのようなので、RadioButton に WM_PAINT を投げても > 同じく描画できず。 > ただ、PrintWindowは、他のウインドウに隠れていても取得できるようなので、DBRadioControlのTopを > マイナス値にして見えない位置に置き、WM_PAINTをRadioButtonにPerformしたら > 描画できた。 > > WM_PAINT の lParam に PRF_CHECKVISIBLE がなければ、Visibleに関係なく取れると > 思ったのに、違うのだろうか? > > ちょっと見栄えを気にしたところ、とんでもなく苦労したでござるという話 GIF,JPEG,PNG画像ファイル及びLZH,ZIPファイルをアップロードできます.600 x 1200 ピクセルを超える画像は縮小表示されます(画像クリックで拡大表示). (上限122000(120k)バイト) 削除キー Link