我有一个用C ++编写的旧应用程序。我有0经验,但我想在应用程序中进行一些更改。其中之一就是改变一些文字。问题是更新文本的一部分需要是粗体,但我不知道如何做到这一点。我用Google搜索但没有太大的成功。我想现在就是使用\n
和\t
新标签转到新行。
有任何聪明的建议吗?
修改
代码示例:
BEGIN
STRING1 "First Example"
STRING2 "Second Example"
使用STRING1的地方:
// WelcomeTip ---------------------------------------------//
LPSTR idsWelcomeTip = (LPSTR)GlobalAlloc(GPTR, sizeof(CHAR) * 4098 );
LoadString( waveInDlg->hInstance, STRING1, idsWelcomeTip, 4098 );
waveInDlg->hwndWelcomeTip = CreateWindow(
"STATIC",
idsWelcomeTip,
WS_CHILD | WS_VISIBLE | SS_LEFT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
waveInDlg->hwnd,
NULL,
waveInDlg->hInstance,
NULL
);
SetWindowLongPtr(waveInDlg->hwndWelcomeTip, GWLP_USERDATA ,(LONG)waveInDlg );
SendMessage(waveInDlg->hwndWelcomeTip, WM_SETFONT , (WPARAM)waveInDlg->hFontDefault , TRUE );
ShowWindow(waveInDlg->hwndWelcomeTip, SW_HIDE);
GlobalFree( (HGLOBAL)idsWelcomeTip );
谢谢,
岛
答案 0 :(得分:10)
C ++中没有粗体文本的概念,可能在特定设备中显示字符文本,例如富文本格式或HTML标记或终端屏幕。后者通常涉及发送与该特定终端相关的一些“逃逸序列”。
答案 1 :(得分:3)
好的,我已经敲了一些代码,这些代码应该概述你所追求的东西,我没有设法编译它,因为我需要写更多的东西来测试,但它应该指向你在正确的方向:
// Create the font you need
LOGFONT lf;
zeromemory(&lf, sizeof(LOGFONT))
lf.lfHeight = 20; // 20 pixel high font
lf.lfWeight = FW_BOLD;
strcpy(lf.lfFaceName, "Arial");
HFONT hFont = ::CreateFondIndirect(&lf);
// Set the control to use this font
SendMessage(waveInDlg->hwndWelcomeTip, WM_SETFONT, (WPARAM)hFont, NULL);
我希望这会有所帮助。
答案 2 :(得分:0)
请通过以下链接获取帮助 http://msdn.microsoft.com/en-us/library/dd162499(VS.85).aspx
是的,您必须在对话框类中重写WM_PAINT并调用drawtext函数。
答案 3 :(得分:-1)
在WM_PAINT消息处理程序中使用DrwaText API。dc.DrawText (_T ("Hello, MFC"), -1, &rect,
DT_SINGLELINE ¦ DT_CENTER ¦ DT_VCENTER);
使用DrawTextEx方法。
如需更多信息,请浏览以下链接
MS-帮助://MS.MSDNQTR.v90.en/gdi/fontext_4pbs.htm