- PR -

ActiveXバーコードコントロールの利用

1
投稿者投稿内容
kawachi3
会議室デビュー日: 2006/02/27
投稿数: 2
投稿日時: 2006-02-27 10:07
このコントロールが生成するイメージをmybImageに取得したい。

1.Delphiで同じ事例があがっていますが、.NetVBでこのバーコード
  コントロールのウィンドウハンドルが取得出来ない(取得方法が
  分からない)。

2.コントロールを含む親ウィンドウのハンドルは取得できているようですが
  BitBltでコピーできていない。(mybImageの内容が空)

下記でmyBcodeNはOffice付属のバーコードコントロール。

Private mybImage As New Bitmap(110, 28)
Dim mygraphics As Graphics = Graphics.FromImage(mybImage)
Dim myctlHandle As IntPtr
Dim dc1 As IntPtr
Dim dc2 As IntPtr



myctlHandle = FindWindow(IntPtr.Zero, myBcodeN.Name)
dc2 = mygraphics.GetHdc()
dc1 = GetWindowDC(myctlHandle)



BitBlt(dc2, 0, 0, myBCodeN.Size.Width, myBCodeN.Size.Height, dc1, 0, 0, 13369376)



<System.Runtime.InteropServices.DllImport("gdi32.dll")> _
Private Shared Function BitBlt(ByVal hdcDest As IntPtr, _
ByVal nXDest As Integer, ByVal nYDest As Integer, _
ByVal nWidth As Integer, ByVal nHeight As Integer, _
ByVal hdcSrc As IntPtr, _
ByVal nXSrc As Integer, ByVal nYSrc As Integer, _
ByVal dwRop As Integer) As Boolean
End Function

<System.Runtime.InteropServices.DllImport("user32.dll")> _
Private Shared Function FindWindow(ByVal lpClassName As IntPtr, ByVal lpWindowName As String) As IntPtr
End Function

<System.Runtime.InteropServices.DllImport("user32.dll")> _
Private Shared Function GetWindowDC(ByVal hwnd As IntPtr) As IntPtr
End Function

以上です。よろしくお願いします。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-02-27 10:37
引用:

kawachi3さんの書き込み (2006-02-27 10:07) より:

2.コントロールを含む親ウィンドウのハンドルは取得できているようですが
  BitBltでコピーできていない。(mybImageの内容が空)


ならば、子 Window のハンドルを探す FindWindowEx はダメでしたか?

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
kawachi3
会議室デビュー日: 2006/02/27
投稿数: 2
投稿日時: 2006-02-27 11:19
FindWindowにしてもFindWindowExにしてもバーコードコントロールのクラス名が
必要だと思います。この指定をどうしたらいいのか分からないのです。
 初歩的なことか分かりませんがよろしくお願いします。
1

スキルアップ/キャリアアップ(JOB@IT)