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

时间:2015-08-11 08:04:27

标签: c++ c winapi

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

代码:

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

1 个答案:

答案 0 :(得分:0)

您可以使用SS_REALSIZECONTROL 摘自Microsoft文档。

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

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