Private Sub Form_Load()
Label1.Caption = "该计算机已经被 " & UserName & " 锁定,只有超级管理员和" & UserName & "才能解除锁定"
Dim hdc As Long, sx As Integer, sy As Integer
Dim hOldPattern As Long, bBmp(0 To 15) As Byte
Dim hBitmap As Long, hPattern As Long, hDCScreen As Long
Dim pOld As Boolean
SystemParametersInfoByRef 97, True, pOld, 0
sx = Screen.Width \ Screen.TwipsPerPixelX
sy = Screen.Height \ Screen.TwipsPerPixelY
hdc = GetDC(0)
'MsgBox sy, , sx
'抓图
BitBlt Me.hdc, 0, 0, sx, sy, hdc, 0, 0, vbSrcCopy
ReleaseDC 0, hdc
bBmp(0) = &H55: bBmp(2) = &HAA: bBmp(4) = &H55: bBmp(6) = &HAA
bBmp(8) = &H55: bBmp(10) = &HAA: bBmp(12) = &H55: bBmp(14) = &HAA
'使屏幕变暗
For TmpLoop = -639 To sy Step 2
Me.Line (TmpLoop * 15, 0)-((TmpLoop + sy) * 15, sy * 15)
Me.Line ((TmpLoop + sy) * 15, 1)-(TmpLoop * 15, sy * 15)
Next TmpLoop
SetWindowPos Me.hWnd, -1, 0, 0, 0, 0, 1 Or 2
End Sub
Declare Function SystemParametersInfoByRef Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, lpvParam As Any, ByVal fuWinIni As Long) As Long
Declare Function SetWindowPos Lib "user32" (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
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
Declare Function GetDC Lib "user32" (ByVal hWnd As Long) As Long
以上是一段vb代码,这段代码的是锁定屏幕用的,各位哥哥姐姐是否能帮小弟转换成vc的代码呢。小弟曾试着转换过,好像问题挺多的
Label1.Caption = "该计算机已经被 " & UserName & " 锁定,只有超级管理员和" & UserName & "才能解除锁定"
Dim hdc As Long, sx As Integer, sy As Integer
Dim hOldPattern As Long, bBmp(0 To 15) As Byte
Dim hBitmap As Long, hPattern As Long, hDCScreen As Long
Dim pOld As Boolean
SystemParametersInfoByRef 97, True, pOld, 0
sx = Screen.Width \ Screen.TwipsPerPixelX
sy = Screen.Height \ Screen.TwipsPerPixelY
hdc = GetDC(0)
'MsgBox sy, , sx
'抓图
BitBlt Me.hdc, 0, 0, sx, sy, hdc, 0, 0, vbSrcCopy
ReleaseDC 0, hdc
bBmp(0) = &H55: bBmp(2) = &HAA: bBmp(4) = &H55: bBmp(6) = &HAA
bBmp(8) = &H55: bBmp(10) = &HAA: bBmp(12) = &H55: bBmp(14) = &HAA
'使屏幕变暗
For TmpLoop = -639 To sy Step 2
Me.Line (TmpLoop * 15, 0)-((TmpLoop + sy) * 15, sy * 15)
Me.Line ((TmpLoop + sy) * 15, 1)-(TmpLoop * 15, sy * 15)
Next TmpLoop
SetWindowPos Me.hWnd, -1, 0, 0, 0, 0, 1 Or 2
End Sub
Declare Function SystemParametersInfoByRef Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, lpvParam As Any, ByVal fuWinIni As Long) As Long
Declare Function SetWindowPos Lib "user32" (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
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
Declare Function GetDC Lib "user32" (ByVal hWnd As Long) As Long
以上是一段vb代码,这段代码的是锁定屏幕用的,各位哥哥姐姐是否能帮小弟转换成vc的代码呢。小弟曾试着转换过,好像问题挺多的
解决方案 »
- 窗口刚建立时绘图
- 如何将写好的VC exe程序生成一个DLL
- 我写了个程序,编译没错,但运行到最后出现下面的问题请问是 怎么回事
- 这是不是一个死循环?在线等!!!!!!!!!!!!!!
- **************************************一个文件中存储了所有的文件,他们的数据是如何存储的?**************************************
- 问几个问题,分数少了点,以后再加
- 有关编辑框中汉字显示的问题?
- OCX高手来看看!!
- 用SerialPort重复发送数据有点问题
- 我想在VC中调用VC.net(C#)写的dll,请教如何使用?
- $$$ media控件的应用问题,高手++(精华)
- 关于文件读入的一个小问题
int sx,sy;
long hOldPattern;
byte bBmp[16];
long hBitmap,hPattern,hDCScreen;
bool pOld;
SystemParametersInfo(97,true,(void *)pOld,0);
sx = GetSystemMetrics(SM_CXSCREEN);
sy = GetSystemMetrics(SM_CYSCREEN);
hdc = GetDC(0); --------- 报错
BitBlt(hdc,0,0,sx,sy,hdc,0,0,13369376); ----报错
hdc = GetDC(0); --------- 报错
BitBlt(hdc,0,0,sx,sy,hdc,0,0,13369376); ----报错这两个函数不是这么用的,
HDC GetDC(
HWND hWnd // handle to window
);要传入你的窗口句病
hWnd
[in] Handle to the window whose DC is to be retrieved. If this value is NULL, GetDC retrieves the DC for the entire screen
hdc 无论是long形还是HDC形都没有用啊
关键MFC好像都不会调用WindowsAPI 都会直接调用CWnd下的GetDC。这是怎么回事呢?不是可以重载吗?
这一句和VC中的
HDC hdc;
BitBlt(hdc,0,0,sx,sy,hdc,0,0,SRCCOPY);
不是同一个意思吧,如果不同 能不能给出正确的答案呢