PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
6958 99/06/30 20:35:31 RE(3):PB6.5: dw表示をクリップボードに転送 By はまちょび
6951 99/06/30 15:05:05 RE(2):PB6.5: dw表示をクリップボードに転送 By M.M
6950 99/06/30 14:56:00 RE(1):PB6.5: dw表示をクリップボードに転送 By はまちょび
6938 99/06/29 19:08:05 PB6.5: dw表示をクリップボードに転送 By はまちょび

カテゴリ:データウィンドウ
日付:1999年06月30日 20:35 発信者:はまちょび
題名:RE(3):PB6.5: dw表示をクリップボードに転送

M.Mさん、こんばんは。

>>これですが、結局APIをつかって実現しました。(^^)
>よろしければ、どういうロジックを使って実現したかアップしてもらえないでしょうか。

はい?。ロジック・・・ぢゃなくて、プログラムのソースです。(爆)

呼び出す関数は、グローバル外部関数に宣言しました。
#ローカル外部関数でもよかったのかな・・・

SRCCOPYとかCF_BITMAPなどの定数は宣言方法がわからなかったので(汗)
Windowsのヘッダファイルを検索して数字を探し出して、
ダイレクトに書いてます。ので、結構アバウトです。(^^;;;;

動けばいいやーって感じで作ったので、へんなとこたくさんあると思います。
間違えや、ここをこう変えたほうがいいよーというアドバイスをいただけたら
うれしいです。(^^)

----
long hdc
long hwnd
long hdcMem
long hBitmap
long lngheight
long lngwidth

//コントロールのハンドルとかを用意する。
hwnd = Handle(dw_graph)
hdc = GetDC(hwnd)
hdcMem = CreateCompatibleDC(hdc)

//コントロールの縦と横の長さをはかって、Bitmapを作る用意をします。
lngwidth = UnitsToPixels(dw_graph.width, XUnitsToPixels!)
lngheight = UnitsToPixels(dw_graph.height, YUnitsToPixels!)
hBitmap = CreateCompatibleBitmap(hdc, lngwidth, lngheight)

//Bitmapが出来上がってたら・・・
if hBitmap <> 0 then
//・・・Bitmapを描画します。
SelectObject(hdcMem, hBitmap)
StretchBlt(hdcMem, 0, 0, lngwidth, lngheight, hdc, 0, 0, lngwidth, lngheight, 13369376)

//クリップボードを開いて、きれいにして、描画したBitmapを貼り付けて、閉じます。
OpenClipboard(hwnd)
EmptyClipboard()
SetClipboardData(2, hBitmap)
CloseClipboard()

end if
//作ったものは破棄しましょう。(^^)
DeleteDC(hdcMem)
ReleaseDC(hWnd, hDC)
----


付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS Windows98
DBMS その他
Browser (記載なし)

Server SoftWare

OS (記載なし)
DBMS その他
WebServer (記載なし)

PowerSpaceの運営は、パワーフューチャー株式会社が行っております。
Copyright © 2013 Power Future Co., Ltd.