c++ - WM_CTLCOLORSTATIC lParam, C++ WINAPI

标签 c++ winapi resource-id getwindowlong

我正在尝试将其包含到我的对话框窗口过程中,当收到消息 WM_CTLCOLORSTATIC 时,我将获得发送消息的控件的 ID。

case WM_CTLCOLORSTATIC: 
        UINT ID = GetWindowLong((HWND)lParam, GWL_ID);

问题是...当我尝试对 WM_CTLCOLORSTATIC 的 lParam 进行类型转换时,它返回值 65535,这是不正确的;我什至没有最大 UINT ID 为 65535 的资源项。

您能告诉我发生这种情况的原因吗?

最佳答案

您的问题不是很清楚,但我猜您得到的 ID 是 65535,即 -1,这对于静态控件 ID 来说是非常标准的。

如果您希望能够区分您的静态控件,请为它们提供不同的 ID。

如果您不关心其他静态控件的颜色,只需使用:

if ( ID ==  IDC_RECT_CC_00 ) {
    [...]
} else {
    // don't bother
}

关于c++ - WM_CTLCOLORSTATIC lParam, C++ WINAPI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20659207/

相关文章:

azure - 由于区分大小写,导入资源后在 Terraform Plan 阶段观察到资源 ID 强制替换(Azurerm 模块、Azure 云)

c++ - 如何将波前 .obj 文件中的索引顶点位置和索引顶点法线获取到 OpenGL 顶点着色器中?

c++ - 模板参数推导 - 推导 T 并使用 T&&

c++ - LPCSTR 函数的返回值变得无用

c# - GetShortPathNameA 在 C# 中不起作用

c# - 如何枚举所有可用的无线网络并将它们显示在列表框中?

安卓 XML : Set Resource id as View's tag in XML layout file

c++ - 并发/多线程:是否可以通过这种方式生成相同的输出?

c++ - 检查区域设置

Android:如何在状态栏中获取电池图标资源 ID 或完整文件路径/名称?