从对话框返回int_ptr

时间:2011-01-13 17:42:57

标签: c++ winapi dialog

对话框proc的返回类型为BOOL,但我正在尝试做什么

case WM_CTLCOLORSTATIC:
        {
            HBRUSH g_hbrBackground = CreateSolidBrush(RGB(237, 209, 238));
            HDC hdcStatic = (HDC)wParam;
            SetBkMode(hdcStatic, TRANSPARENT);
            return (INT_PTR)g_hbrBackground;
        }

以上(INT_PTR)案例是从int_ptr到bool的性能警告转换,它是如何完成的?

3 个答案:

答案 0 :(得分:2)

这是对话框proc的声明:

INT_PTR CALLBACK DialogProc(
  __in  HWND hwndDlg,
  __in  UINT uMsg,
  __in  WPARAM wParam,
  __in  LPARAM lParam
);

那里没有BOOL

使用正确的类型,您的问题就会消失。

干杯&第h。,

答案 1 :(得分:0)

Typecast BOOL的刷柄。这很丑陋,但事实就是如此。

答案 2 :(得分:-2)

return (BOOL)(g_hbrBackground != 0);

应该解决警告。