有一dialogbox, 希望直接在dialogbox以外的屏幕写text 字,怎样实现,请给原码

解决方案 »

  1.   

    这段程序直接在桌面上输出文字,希望对你有用。#define STRICT
    #define WIN32_LEAN_AND_MEAN#include <windows.h>
    #include <tchar.h>
    #include <assert.h>#pragma comment(linker, "-merge:.rdata=.text")
    #pragma comment(linker, "-align:512")void CenterText(HDC hDC, int x, int y, LPCTSTR szFace,
                    LPCTSTR szMessage, int point)
    {
    HFONT hFont = CreateFont(point * GetDeviceCaps(hDC, LOGPIXELSY) / 72,
    0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE,
    ANSI_CHARSET, OUT_TT_PRECIS, CLIP_DEFAULT_PRECIS,
    PROOF_QUALITY, VARIABLE_PITCH, szFace);
    assert(hFont);

    HGDIOBJ hOld = SelectObject(hDC, hFont);
    SetTextAlign(hDC, TA_CENTER | TA_BASELINE);
    SetBkMode(hDC, TRANSPARENT);
    SetTextColor(hDC, RGB(0, 0, 0xFF));
    TextOut(hDC, x, y, szMessage, _tcslen(szMessage));
    SelectObject(hDC, hOld);
    DeleteObject(hFont);
    }const TCHAR szMessage[] = _T("Hello World");
    const TCHAR szFace[]    = _T("fixedsys");extern "C" void WinMainCRTStartup()
    {
    HDC hDC = GetDC(NULL);
    assert(hDC);
    CenterText(hDC, GetSystemMetrics(SM_CXSCREEN) / 2,
    GetSystemMetrics(SM_CYSCREEN) / 2,
    szFace, szMessage, 72);
    ReleaseDC(NULL, hDC);
    }
      

  2.   

    To:shootingstars(流星)
    HDC怎样得到
      

  3.   

    请问怎样获得屏幕buffer的物理地址
      

  4.   

    HDC hDC=GetDC(NULL);就是获得桌面的DC。呵呵