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

how to make a picture fit in a static control vc++ win32

本文关键字:一个 静态控件 vc++ win32 何使图 适合于      更新时间:2023-10-16

你能告诉我如何使图片适合静态控件吗?我的意思是,如果你创建一个静态控件来查看图片,如果图片的质量或大小大于控件,那么它会根据图片的大小重新调整静态控件的大小。我可以创建控件并设置图片。但我不知道如何让它适合控制。这就是我如何创建控件和设置图片。

代码:

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处理程序的函数,它成功地创建了它,现在我不知道如何使它适合控制,我真的很感激,如果你能告诉我如何使图片适合控制。

您可以使用SS_REALSIZECONTROL

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

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