如何使图片适合静态控件vc ++ win32

问题描述 投票:1回答:1

你能告诉我如何使图片适合静态控制,我的意思是,如果你创建一个静态控件来查看图片,如果图片的图片质量或大小比控件大,那么它会调整静态控件的大小的图片。我可以创建控件并将图片设置为正常。但我不知道如何使它适合控制。这就是我如何创建控件并为其设置图片。

码:

HWND static_con(HWND hWnd, HINSTANCE hInst){
    HWND Static_Pic;

    Profile_Pic = CreateWindow("STATIC", NULL, SS_BITMAP|WS_CHILD|WS_VISIBLE|WS_TABSTOP, 5,5,33,33, hWnd, NULL, hInst, NULL);
    HBITMAP hBmp = (HBITMAP)LoadImage(NULL, "camera1.jpg", IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
    if(hBmp == NULL){
        MessageBox(NULL, "Error while loading image", "Error", MB_OK|MB_ICONERROR);
    }
    SendMessage(Static_Pic, STM_SETIMAGE, (WPARAM)IMAGE_BITMAP, (LPARAM)hBmp);
    return 0;
}

然后我在WM_CREATE处理程序中调用该函数,该处理程序成功创建它,现在我不知道如何使其适合控制,我真的很感激,如果你能告诉我如何使图片适合控制。

c++ c winapi
1个回答
0
投票

您可以使用SS_REALSIZECONTROL来自Microsoft的文档。

SS_REALSIZECONTROL - Adjusts the bitmap to fit the size of the static control.

您也可以手动缩放图像。通过使用GetWindowRect()获取控件的大小,然后使用StretchBlt()缩放图像以使其尺寸与源的尺寸匹配,然后执行STM_SETIMAGE。

© www.soinside.com 2019 - 2024. All rights reserved.