【问题标题】:C++ Win32 GDI+ drawstring from wchar_t*来自 wchar_t* 的 C++ Win32 GDI+ 拉绳
【发布时间】:2014-09-22 07:12:02
【问题描述】:

我已经完成了搜索并为此花费了至少一个小时。

wchar_t* fooBar = (wchar_t*)L"BlahBlah\0";
//GetWindowText(pDIS->hwndItem, (wchar_t*)fooBar, 64); 
g->DrawString(fooBar, -1, &font, rectf, &strFormat, textColorUp);

这可以工作,并且可以编译;因为正确绘制了字符串“BlahBlah”。

问题是我想使用已注释掉的 GetWindowText() 的值。

转换可能有问题,但我就是找不到。

【问题讨论】:

    标签: c++ winapi


    【解决方案1】:

    您需要为GetWindowText 函数分配空间来写入。您不能提供字符串文字的地址,因为它们是不可修改的。

    wchar_t buffer[1024];
    GetWindowText(pDIS->hwndItem, buffer, _countof(buffer));
    g->DrawString(fooBar, -1, &font, rectf, &strFormat, textColorUp);
    

    【讨论】:

    • 谢谢。我找到了_countof()的宏,即:#define _countof(array) (sizeof(array)/sizeof(array[0]))
    • @EvanCarslake 除非你想被限制在一个固定的最大长度,你可以先调用GetWindowTextLength,然后分配一个动态缓冲区。
    猜你喜欢
    • 1970-01-01
    • 2012-12-13
    • 1970-01-01
    • 2021-08-03
    • 2013-05-06
    • 2011-02-06
    • 1970-01-01
    • 2010-10-03
    • 2013-02-06
    相关资源
    最近更新 更多