无边框的对话框中打印文字

azheng333 2009-06-05 11:47:14
我用MFC创建了一个基于对话框的应用程序,然后把对话属性该成无边框 ,然后我用DRAWTEXT 或者 TEXTTOU 在对话框中打印文字全都打印不出来, 请问有人知道原因吗???万分感谢
...全文
46 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
azheng333 2009-06-08
  • 打赏
  • 举报
回复
不对吧 我原来也输出的蛮好的 就是换了一个无边框的对话框就不行了
liangxd09 2009-06-05
  • 打赏
  • 举报
回复
没看到代码

给你一段代码
void DrawWindowText(HDC hDestDC, CString strText, CRect rcItem)
{
LOGFONT lf;
lf.lfCharSet=GB2312_CHARSET;
lf.lfClipPrecision=CLIP_DEFAULT_PRECIS;
lf.lfEscapement=0;
strcpy(lf.lfFaceName,"ËÎÌå"); //×ÖÌåÑùʽ
lf.lfHeight=-12; //×ÖÌå¸ß¶È
lf.lfItalic=FALSE;
lf.lfOrientation=0;
lf.lfOutPrecision=OUT_DEFAULT_PRECIS;
lf.lfPitchAndFamily=FF_DONTCARE | DEFAULT_PITCH;
lf.lfQuality=DEFAULT_QUALITY;
lf.lfStrikeOut= FALSE;
lf.lfUnderline=FALSE;
lf.lfWeight=FW_NORMAL;//×ÖÌåÖØÁ¿
lf.lfWidth=0;

CFont cf;
cf.CreateFontIndirect(&lf);
::SetBkMode(hDestDC, TRANSPARENT);

HFONT hOldFont = (HFONT)::SelectObject(hDestDC, cf.GetSafeHandle());

::DrawText(hDestDC, strText, strText.GetLength(),
&rcItem, DT_SINGLELINE |DT_VCENTER |DT_LEFT);

::SelectObject(hDestDC, hOldFont);
cf.DeleteObject();
}
azheng333 2009-06-05
  • 打赏
  • 举报
回复
另外我这里用的 DC 是getwindowsdc();
findcsdn 2009-06-05
  • 打赏
  • 举报
回复
哈哈,你对窗口显示机制不理解的说。

要想在别的函数里输出字符串,只有加一个Lab控件了.


azheng333 2009-06-05
  • 打赏
  • 举报
回复
在onPaint或者Onclick里写肯定是可以的我试过了,但是现在我不想在onPaint或者Onclick里写, 我想在我自己的函数里输出一段文字款窗口的(0,0)坐标地方 我把现在的贴图去掉了 然后再输出页输出不出来
findcsdn 2009-06-05
  • 打赏
  • 举报
回复

这应该是个简单问题,
用API的TextOut 输出一段字符串试一下,把坐标设成(0,0)
确定字符串输出的地方没有其他窗体或控件覆盖。
确定输出的字符串没有刷新掉,可以在Onclick里写,或者onPaint里写。


azheng333 2009-06-05
  • 打赏
  • 举报
回复
我先用这个DC在对话框上贴了一张图
pDC.StretchBlt(0, 0, point.x, 64,
&dc, 0, 0, hb.bmWidth, hb.bmHeight, SRCCOPY);
然后再用这个DC在这张图片的左上角写一段文字
int nOldMode = pDC->SetBkMode(TRANSPARENT);
COLORREF clOldText=pDC->SetTextColor(RGB(0, 0, 0));
pDC->SelectStockObject(SYSTEM_FIXED_FONT);
rtTitle.left += 8;
rtTitle.top +=1;
rtTitle.bottom = rtTitle.top + 30;
CString m_strTitle;
GetWindowText(m_strTitle);

pDC->DrawTextA(m_strTitle, &rtTitle, DT_LEFT);
pDC->SetBkMode(nOldMode);
pDC->SetTextColor(clOldText);
但是最后文字显示不出来
azheng333 2009-06-05
  • 打赏
  • 举报
回复
我开始用getwindowsdc()得到的DC贴了一张图 然后用这个DC->DrawText() 在刚贴的图上输出文字,但是文字出不来 好像是被图给盖住了?

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧