Win32编辑打印不正确的字符

那个人

我正在使用Win32编辑来显示调试信息,并将该编辑以及其他基本GUI放在了一个类中。但是,当我向编辑输出任何内容时,它会显示“ ?????????????????????????????”。我认为错误出在我的MyGUI::append(LPCSTR)方法上,尽管它在过去一直运行良好。任何意见/想法/解决方案将不胜感激。如果我需要发布与我的GUI类有关的所有代码,请告诉我。

我的类位于命名空间中Interface,还有独立WindowProcedure函数,当我向WNDCLASSEX对象注册应用程序时会调用它。

由于无法在我的GUI类中放置函数,因此未WM_CREATEWindowProcedure(可能应该如此)句柄中创建win32编辑

创建编辑的方法:

HWND createEdit( HINSTANCE hInst, HWND hwnd, int appBott, int appTop ){
    return CreateWindowEx(  WS_EX_APPWINDOW,
                            TEXT("EDIT"), TEXT(""),
                            WS_BORDER | WS_CHILD | WS_VISIBLE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_READONLY | ES_MULTILINE| WS_VSCROLL | WS_HSCROLL,
                            10, 10, appBott-25, appTop-50,
                            hwnd,
                            (HMENU) 102,
                            hInst,
                            NULL );
}

在'guiCreate()'方法中用作:HWND hEdit = createEdit(hInst,hWin,appWidth,appHeight);

在编辑中显示文本的方法:

void Interface::MyGUI::append( LPCSTR text ){
    if( created && !stopAll ){
        int TextLen = SendMessage(hEdit, WM_GETTEXTLENGTH, 0, 0);
        SendMessageW(hEdit, EM_SETSEL, (WPARAM)TextLen, (LPARAM)TextLen);
        SendMessageW(hEdit, EM_REPLACESEL, FALSE, (LPARAM) text);
    }
}

在主程序中用作:

MyGUI form(); //initialize form
form.append( (LPCSTR)"Example text\n" );

输入文字:“示例文字。\ n”显示文字:“ ??????????????

大卫·赫弗南(David Heffernan)

您的目标似乎是ANSI。在这种情况下,请勿致电SendMessageW,致电SendMessageA甚至,SendMessage而应将其扩展为SendMessageA

您调用,SendMessageW但传递ANSI编码的文本。打电话时,SendMessageW您承诺会发送UTF-16编码的文本。

但是,您应该停止针对ANSI的定位。改为目标Unicode。停止使用TEXT()宏,并在L字符串文字中使用前缀。并停止转换字符串类型。那位(LPCSTR)演员自找麻烦。当您像这样进行转换时,您会告诉编译器您比它了解的更多。通常情况并非如此。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在字符串中打印不正确的字符数

来自分类Dev

存储在结构中的字符串打印不正确

来自分类Dev

终端输出不正确,字符无法打印

来自分类Dev

负值打印不正确

来自分类Dev

Java字符串索引超出范围'}'标记不正确/无法正确打印

来自分类Dev

Win32Exception:使用WebClient调用WCF服务时,目标主体名称不正确

来自分类Dev

Python win32com Outlook HTMLbody格式目录不正确

来自分类Dev

从perl打印json不正确

来自分类Dev

java打印:纸张尺寸不正确

来自分类Dev

Bash打印不正确的文件行数

来自分类Dev

从perl打印json不正确

来自分类Dev

printf打印的号码不正确

来自分类Dev

如何打印不正确的问题?

来自分类Dev

宏打印不正确的输出

来自分类Dev

C - 程序打印不正确

来自分类Dev

在PHP中编辑格式不正确的JSON字符串

来自分类Dev

正确使用Win32线程

来自分类Dev

Python字节字符串在字典中打印不正确

来自分类Dev

输入字符串格式不正确 预期类型为 Int32

来自分类Dev

德语字符显示不正确与SetDlgItemText

来自分类Dev

不正确的多字节字符宽度

来自分类Dev

如何返回不正确的字符?

来自分类Dev

不正确的JSON字符串

来自分类Dev

字符串格式不正确

来自分类Dev

比较字符时输出不正确

来自分类Dev

字符串长度不正确

来自分类Dev

土耳其语字符显示不正确

来自分类Dev

字符串格式不正确

来自分类Dev

如何返回不正确的字符?