MFC添加使用picture control控件添加Bitmap图片

MFC添加使用picture control控件添加Bitmap图片,第1张

1.事先准备好位图。一定要位图。位图。

2.在对话框中添加picture控件,设置type为bitmap,将其ID改为IDC_STATIC1(不改不行)。然后为picture添加控制变量PT1。

3.在.cpp中找到onpaint()函数加入如下代码。

CDC dcMemory1

CBitmap wtj_bitmap1

BITMAP bmInfo1

CDC *pDC=PT1.GetDC()

PT2.SetWindowPos(0,-400,112,53,20, SWP_NOZORDER | SWP_NOACTIVATE)

GetDlgItem(IDC_STATIC1)->GetWindowRect(rect)//创建一个CRect对象rect,矩形结构类,此对象用来指定要拉伸变为的大小

wtj_bitmap1.LoadBitmap(IDB_BITMAP15)

wtj_bitmap1.GetObject(sizeof(bmInfo1),&bmInfo1)

dcMemory1.CreateCompatibleDC(pDC)

dcMemory1.SelectObject(&wtj_bitmap1)

//pDC->SetStretchBltMode(COLORONCOLOR)

pDC->SetStretchBltMode(HALFTONE)

pDC->StretchBlt(0,0,1000,rect.Height()-13,&dcMemory1,0,0,bmInfo1.bmWidth,bmInfo1.bmHeight, SRCCOPY)//利用StretchBlt()贴图实现自动拉伸

ReleaseDC(pDC)

4.setwindowspos函数和stretchblt函数参数百度就可以查到了。

lz 你好

具体步骤如下:

(1)右键"资源文件" ->“添加”->"新建项"

(2)选择"资源"->"资源文件.rc"->命名为"resource"

(3)菜单栏选择"视图"->"资源视图", 右键"resource.rc"->"添加资源"

(4)选择"Icon"->"导入"  选择你要加入的图标

(5)右键添加好的图标,选择"属性",修改ID

(6)修改源代码,如下:

//IconDemo.c

#include<windows.h>

#include"resource.h"//添加资源头文件

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM)

int WINAPI WinMain(HINSTANCE hInstance,

   HINSTANCE hPrevInstance,

                   PSTR szCmdLine,

   int iCmdShow)

{

static TCHAR szAppName[] = TEXT("IconDemo")

HWND hwnd

MSG msg

WNDCLASS wndclass

int cxScreen, cyScreen

wndclass.style = CS_HREDRAW | CS_VREDRAW

wndclass.lpfnWndProc = WndProc

wndclass.cbClsExtra = 0

wndclass.cbWndExtra = 0

wndclass.hInstance = hInstance

wndclass.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON))//加载图标

wndclass.hCursor = LoadCursor(NULL, IDC_ARROW)

wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH)

wndclass.lpszMenuName = NULL

wndclass.lpszClassName = szAppName

if(!RegisterClass(&wndclass))

{

MessageBox(NULL, TEXT("This program requires Windows NT!"),

szAppName, MB_ICONERROR)

return 0

}

cxScreen = GetSystemMetrics(SM_CXSCREEN)

cyScreen = GetSystemMetrics(SM_CYSCREEN)

hwnd = CreateWindow(szAppName,

TEXT("IconDemo"),

WS_OVERLAPPEDWINDOW,

cxScreen * 7 / 20,

cyScreen / 4,

cxScreen * 3 / 10,

cyScreen / 2,

NULL,

NULL,

hInstance,

NULL)

ShowWindow(hwnd, iCmdShow)

while(GetMessage(&msg, NULL, 0, 0))

{

TranslateMessage(&msg)

DispatchMessage(&msg)

}

return msg.wParam

}

LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)

{

switch(message)

{

case WM_DESTROY:

PostQuitMessage(0)

return 0

}

return DefWindowProc(hwnd, message, wParam, lParam)

}

(7)运行效果如下:

希望能帮助你哈

你添加的这个不是bmp位图文件

附加位图的时候,不能单单是把文件后缀改成.bmp

你可以用画图,或者其他看图工具,打开图片后另存为bmp格式

再插入的时候,就会变成位图附加到项目中了

附加了以后,图片的id会变成IDB_BITMAP1,你可以改成自己想要的名字


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11793545.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-18
下一篇2023-05-18

发表评论

登录后才能评论

评论列表(0条)

    保存