首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

用api获取其它程序中picturebox中图形的有关问题

2012-01-24 
用api获取其它程序中picturebox中图形的问题我的代码如下:PrivateDeclareFunctionFindWindowLibuser32 A

用api获取其它程序中picturebox中图形的问题
我的代码如下:
Private   Declare   Function   FindWindow   Lib   "user32 "   Alias   "FindWindowA "   (ByVal   lpClassName   As   String,   ByVal   lpWindowName   As   String)   As   Long
Private   Declare   Function   SendMessage   Lib   "user32 "   Alias   "SendMessageA "   (ByVal   hwnd   As   Long,   ByVal   wMsg   As   Long,   ByVal   wParam   As   Long,   lParam   As   Any)   As   Long
Private   Declare   Function   GetDlgItem   Lib   "user32 "   (ByVal   hDlg   As   Long,   ByVal   nIDDlgItem   As   Long)   As   Long
Private   Declare   Function   BitBlt   Lib   "gdi32 "   (ByVal   hDestDC   As   Long,   ByVal   X   As   Long,   ByVal   Y   As   Long,   ByVal   nWidth   As   Long,   ByVal   nHeight   As   Long,   ByVal   hSrcDC   As   Long,   ByVal   xSrc   As   Long,   ByVal   ySrc   As   Long,   ByVal   dwRop   As   Long)   As   Long
Private   Declare   Function   GetDC   Lib   "user32 "   (ByVal   hwnd   As   Long)   As   Long
Private   Declare   Function   GetPixel   Lib   "gdi32 "   (ByVal   hdc   As   Long,   ByVal   X   As   Long,   ByVal   Y   As   Long)   As   Long


Private   Sub   Command1_Click()
aa   =   FindWindow(vbNullString,   "Form1 ")
MsgBox   aa
Dim   bb   As   Long
bb   =   GetDlgItem(aa,   3)
MsgBox   bb
Dim   cc   As   Long
cc   =   GetDC(bb)
BitBlt   Picture1.hdc,   5,   5,   50,   50,   cc,   0,   0,   &HCC0020
Picture1.Refresh

End   Sub

如果那个caption为Form1的窗体在前端显示,没有问题,能够正确地获取form1中那个picturebox的图片,但是如果form1被其他程序的界面覆盖,就会显示出其它程序界面上的图形。
我想知道怎么才能不管form1的状态如何都能获取form1中picturebox里面的图形。
我的分不多,先谢谢大家了。

[解决办法]
我有办法,明天给代码!
[解决办法]
用getdc 或getwindowdc这样的方法恐怕行不通!
当窗口完全显示时(没有遮挡)程序要重绘窗口(常识),既然要重绘,哪么一定要从某个地方读取要绘制的内容,哪么哪个地方是那儿呢?又是如何存储的?好多问题......

热点排行