如何在C ++ win32 API中的对话框中设置图像?

我正在开发一个C ++ Api项目。

我将使用dialogBoxparam创build一个对话框…

我做了创build和设置文本框,标签和button…它的工作很好…

现在我想在对话框的顶部添加一个图像…

如何显示标准的Windows数据源(ODBC)对话框

使用箭头键在Windows对话框中导航

获取对话框中的文本

WPF / C# – 对话框窗口不响应触摸

是否有可能从IFileDialog中删除/隐藏打开的button

我在WM_INITDIALOG中使用了这个代码

HBITMAP hImage= (HBITMAP)LoadImage(NULL,L"C:\WINDOWS\system32\BMA-Images\login-header",IMAGE_BITMAP,LR_DEFAULTSIZE,LR_LOADFROMFILE|LR_CREATEDIBSECTION); SendMessage(_hwnd,STM_SEtimage,(LParaM)hImage);

但它没有工作…任何人都可以帮助解决这个…在此先感谢Sonu

C ++ MFC:如何在创build第一个模式对话框后立即打开第二个对话框

SelectDirectory不包括某些机器上的驱动器

Excel:VBA中的文件打开对话框,设置为详细视图,并按修改datesorting

C ++中的对话框没有收到某些击键

如何在不同的windows平台上控制tkfiledialog中文件types的顺序

最简单的方法是覆盖窗口的WM_PAINT,并在该点(在BeginPaint和EndPaint之间)调用时绘制位图

这里有一个基于MFC的例子:

http://www.programmersheaven.com/mb/mfc_coding/113034/113034/how-do-i-set-a-background-picture-in-a-dialog-Box-/

处理WM_INITDIALOG消息时,使用HWND hImageCtl = GetDlgitem(_hwnd,<image-control-resource-id>)来获取图像控件的句柄(假定_hwnd是对话框本身的句柄)。

然后使用hImageCtl发送STM_SEtimage消息。

这工作多年,从Windows 98对我来说:

//globals HBrush hbr; PAINTSTRUCT wcd; LRESULT CALLBACK MainWndProc( HWND hWnd,UINT msg,WParaM wParam,LParaM lParam ) { switch( msg ) { case WM_PAINT: if (GetUpdateRect(hWnd,r,0)) { BeginPaint(hWnd,&wcd); if (wParam == NULL) FillRect(wcd.hdc,&wcd.rcPaint,hbr); EndPaint(hWnd,&wcd); } break; case WM_COMMAND: ///your code } } int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int Show) { ghInstance = hInstance; //Prepare brush for background hbr=CreatePatternBrush(LoadBitmap(hInstance,MAKEINTRESOURCE(IDB_BGROUND))); ///your code DialogBox(hInstance,"MAIN",NULL,(DLGPROC)MainWndProc); ///your code return(FALSE); }

IDB_BGROUND – 图片资源的ID,链接在。

相关文章

可以认为OpenFeign是Feign的增强版,不同的是OpenFeign支持S...
为进一步规范小程序交易生态、提升用户购物体验、满足用户在...
云原生之使用Docker部署Dashdot服务器仪表盘
本文主要描述TensorFlow之回归模型的基本原理
1.漏洞描述Apache Druid 是一个集时间序列数据库、数据仓库和...
内部类(当作类中的一个普通成员变量,只不过此成员变量是cl...