截屏程序

//xxx.cpp

#include <Windows.h>
#include "resource.h"

HDC g_hMemScrDc;
HBITMAP g_hSrcMap;
int g_xScr;
int g_yScr;

BOOL CALLBACK  MyDlgCallBack(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
 switch(message)
 {
 case WM_INITDIALOG:
        SetWindowPos(hDlg, GetTopWindow(NULL), 0, 0, g_xScr, g_yScr, SWP_SHOWWINDOW);
  return (TRUE);

 case WM_CLOSE:
  return (TRUE);

 case WM_COMMAND:
  return (TRUE);

    case WM_ERASEBKGND:
        BitBlt((HDC)wParam, 0, 0, g_xScr, g_yScr, g_hMemScrDc, 0, 0, SRCCOPY);
        return (TRUE);
 }
 return (FALSE);
}

int WINAPI
WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
    HDC hScrDc = CreateDC(TEXT("DISPLAY"), NULL, NULL, NULL);
    g_xScr = GetDeviceCaps(hScrDc, HORZRES);
    g_yScr = GetDeviceCaps(hScrDc, VERTRES);
    g_hSrcMap = CreateCompatibleBitmap(hScrDc, g_xScr, g_yScr);
    g_hMemScrDc = CreateCompatibleDC(hScrDc);
    SelectObject(g_hMemScrDc, g_hSrcMap);

    BitBlt(g_hMemScrDc, 0, 0, g_xScr, g_yScr, hScrDc, 0, 0, SRCCOPY);
    DeleteDC(hScrDc);

    DialogBoxA(hInstance, MAKEINTRESOURCEA(IDD_MAINDLG), NULL, MyDlgCallBack);

    DeleteObject(g_hSrcMap);
    DeleteDC(g_hMemScrDc);
  
    return 0;
}

 

//resource.h

#define IDD_MAINDLG                     101

 

//xxx.rc

#include "afxres.h"
#include "resource.h"

IDD_MAINDLG DIALOGEX 0, 0, 316, 183
STYLE DS_SETFONT | DS_FIXEDSYS | WS_POPUP | WS_SYSMENU
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
END

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值