微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在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,链接在。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐