【问题标题】:Loading a bitmap into a CStatic control?将位图加载到 CStatic 控件中?
【发布时间】:2023-03-27 19:13:01
【问题描述】:

我正在尝试将位图加载到CStatic 控件中。在我的对话框中,我有一个 CStatic 控件,我指的是 _myStatic。在我的对话框的OnInitDialog 方法中,我将控件连接到该变量,并通过_myStatic.ModifyStyle(0,SS_BITMAP); 将样式修改为SS_BITMAP。之后的行我有_myStatic.SetBitmap(::LoadBitmap(NULL, MAKEINTRESOURCE(IDB_BITMAP1)));,但位图没有显示在 CStatic 中。我错过了这个过程中的一步吗?位图在我的资源中定义。

【问题讨论】:

  • 你打电话给UpdateWindow()了吗?窗口的某些属性被缓存,更改它们可能需要调用UpdateWindows() 来更新缓存值。
  • 您确认LoadBitmap() 没有返回NULL 句柄吗? LoadImage() 有同样的问题吗?无论如何你都应该使用它,因为 LoadBitmap() 已被弃用。

标签: c++ bitmap atl wtl


【解决方案1】:

您应该为LoadBitmap 调用提供一个非NULL 第一个参数。单步执行调用,确保有效的 SetBitmap 参数也不为 NULL。

_myStatic.SetBitmap(::LoadBitmap(
    _AtlBaseModule.GetResourceInstance(), MAKEINTRESOURCE(IDB_BITMAP1)));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-15
    • 1970-01-01
    • 2012-11-02
    • 1970-01-01
    • 2011-02-17
    • 2013-05-23
    • 1970-01-01
    • 2012-06-15
    相关资源
    最近更新 更多