gpt4 book ai didi

c++ - 添加图像C++后发送文本到按钮

转载 作者:行者123 更新时间:2023-11-30 20:35:40 25 4
gpt4 key购买 nike

我可以将图像添加到按钮作为背景,但后来我想将文本添加到按钮作为“Weclome”,我尝试了使用 Settext、SendmessageA 的所有可能方法。请帮忙

#include <Windows.h>

int main()
{
MSG msg;
HWND hWnd = CreateWindow(TEXT("button"), TEXT("START"), WS_VISIBLE | WS_POPUP | WS_CHILD | WS_TABSTOP | BS_BITMAP,
250, 250, 500, 500, NULL, NULL, NULL, NULL);
HANDLE hImg = LoadImageW(NULL, L"Untitled.bmp", IMAGE_BITMAP, 0, 0, LR_DEFAULTCOLOR | LR_DEFAULTSIZE | LR_LOADFROMFILE);
SendMessageW(hWnd, BM_SETIMAGE, IMAGE_BITMAP, (LPARAM)hImg);

SendMessageA(hWnd, WM_SETTEXT, 0, (LPARAM)"Welcome");
//SendMessageW(hWnd, WM_SETTEXT, (WPARAM) 256,NULL);


while (GetMessage(&msg, NULL, 0, 0))
{
ShowWindow(hWnd, SW_SHOW);
UpdateWindow(hWnd);
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return (int)msg.wParam;
}

最佳答案

您确实意识到必须创建一个窗口,然后将按钮放入窗口内吗?

程序可能正在错误的目录中查找文件。使用完整路径名并进行错误检查以确保位图已加载。示例:

HANDLE hImg = LoadImageW(NULL, L"c:\\fullpath\\Untitled.bmp", IMAGE_BITMAP, 0, 0, 
LR_DEFAULTCOLOR | LR_DEFAULTSIZE | LR_LOADFROMFILE);

if (!hImg)
report error...

不要将 ShowWindowUpdateWindow 放入消息循环中。只需显示窗口,然后调用消息循环即可。示例:

ShowWindow(hWnd, SW_SHOW);
UpdateWindow(hWnd);

while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}

关于c++ - 添加图像C++后发送文本到按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38618726/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com