在WIN32中的“BUTTON”类窗口上显示位图
发布时间:2023-12-18 17:24:54 所属栏目:Windows 来源:DaWei
导读: 编辑:我认为在创建子窗口期间(即我的按钮)不会发送WM_CREATE消息.因此,通过在WM_CREATE期间调用SendMessage,我正在向尚未创建的窗口发送消息.现在的解决方案是在WM_SHOWWINDOW消息期间调用
编辑:我认为在创建子窗口期间(即我的按钮)不会发送WM_CREATE消息.因此,通过在WM_CREATE期间调用SendMessage,我正在向尚未创建的窗口发送消息.现在的解决方案是在WM_SHOWWINDOW消息期间调用SendMessage().子窗口是否在创建时发送WM_CREATE消息? 为什么按钮上没有显示位图?位图为180×180像素. 我有一个资源文件: Bit BITMAP bit.bmp然后我创建了主窗口和一个子“BUTTON”窗口,其中包含: HWND b,d; b = CreateWindow(L"a",NULL,WS_OVERLAPPEDWINDOW,500,hInstance,0); d = CreateWindow(L"BUTTON",WS_CHILD | WS_VISIBLE | BS_BITMAP,10,180,b,200,0);然后,在我的Windows程序中,我向“BUTTON”窗口发送“BM_SETIMAGE”消息: HBITMAP hbit; case WM_CREATE: // It works if I change this to: case WM_SHOWWINDOW hbit = LoadBitmap(hInstance,L"Bit"); SendMessage(d,BM_SETIMAGE,(WPARAM)IMAGE_BITMAP,(LPARAM)hbit);LoadBitmap()返回一个有效的句柄,因为它没有返回NULL,我能够使用BitBlt()函数在客户区显示位图.所以我要么没有正确发送消息,要么我没有正确创建“按钮”窗口. 我究竟做错了什么? 谢谢! 当创建该类的窗口时,将使用WM_CREATE调用窗口类“a”的窗口过程.这是在您第一次调用CreateWindow时,这是在创建子BUTTON窗口之前. WM_CREATE表示“您正在被创建” C 它并不意味着“正在创建一个孩子”.解决方案是在类“a”的WM_CREATE处理程序中调用d = CreateWindow(L“BUTTON”…): case WM_CREATE: d = CreateWindow(L"BUTTON",hwnd,0); hbit = LoadBitmap(hInstance,L"Bit"); SendMessage(d,(LPARAM)hbit);(编辑:甘南站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- DLL CARE(dll修复工具)
- 身份验证错误 要求的函数不受支持 Windows远程桌面连接
- windows-runtime – 将Action绑定到XAML中UserControl的属性
- Windows Mobile 6.5手势和C#2.0应用程序
- windows – PSExec如何以SYSTEM用户身份运行应用程序?
- windows-services – 首先是TopShelf,Ninject和EF代码的Nin
- 用edge浏览器播放视频息屏问题该怎样设定
- .net C 在Win32/COM方法上调用PInvoke时,通常有一个明显的性
- win7运行mapreduce报错Could not locate executable nullbi
- 为什么有条件地包含direct.h或sys / stat.h基于_WIN32或__l
推荐文章
站长推荐
- win10下edge浏览器关闭无响应要怎样做
- Windows系统·添加Python import 的库/模块路径
- .net – Windows Azure Web角色缓存(预览)“挂起
- windows-10 – Windows 10移动设备错误:DEP6200
- .net – 为什么我无法在2.0.0.0播放器框架中重用
- 为什么有条件地包含direct.h或sys / stat.h基于_
- PHP7安装Redis扩展教程【Linux与Windows平台】
- 联想ThinkPad T410s如何重装系统win7步骤
- 微软 Windows 11 23H2 桌面应用文件夹功能泄露
- 如何在Windows 8.1上安装PyBluez?