//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