0

我正在尝试捕获屏幕并将其分配给某种控件,以便我可以单击图片并检索单击图片的坐标。我该怎么做呢?我试图将位图分配给静态控件,当用户单击图像时,我检索鼠标坐标并减去偏移的边框。我使用静态控件,因为它具有 SS_Notify。

但是这里的图片甚至不能显示在框架上?我该怎么做才能修复此代码?

            static HDC handle_MemoryDC;
    static HDC handle_ScreenDC;
    //BITMAP bitmap;
    static HBITMAP handle_Bitmap;
    static int x, y;


    case WM_CREATE:{

    CreateWindowEx(NULL, "STATIC", "", SS_BITMAP|WS_VISIBLE|WS_CHILD, 500,300, 640 ,360 , hwnd, HMENU(IDCSTATIC_BITMAP), GetModuleHandle(NULL), NULL);

    handle_ScreenDC = GetDC(NULL);
    handle_MemoryDC = CreateCompatibleDC(handle_ScreenDC);



     x = GetDeviceCaps(handle_ScreenDC, HORZRES);
     y = GetDeviceCaps(handle_ScreenDC, VERTRES);

    handle_Bitmap = CreateCompatibleBitmap(handle_ScreenDC, 640, 360);

    SelectObject(handle_MemoryDC, handle_Bitmap);
    StretchBlt(handle_MemoryDC, 0, 0, 640, 360, handle_ScreenDC, 0, 0, x, y, SRCCOPY);



    SendDlgItemMessage(hwnd, IDCSTATIC_BITMAP, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM)handle_Bitmap);
4

1 回答 1

0

看起来您正在尝试将消息发送到菜单 (IDCSTATIC_BITMAP),而不是静态控制。尝试使用

SendMessage(hwnd, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM)handle_Bitmap);
于 2013-04-23T06:32:46.240 回答