首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

小弟我不是标题党.真心求教.

2012-04-25 
我不是标题党....真心求教...上次发个帖,竟然有高人说我标题党。。。。,桑心。。。。这次再次求教...单文档,以CFor

我不是标题党....真心求教...
上次发个帖,竟然有高人说我标题党。。。。,桑心。。。。
  这次再次求教...
  单文档,以CFormView为基类。然后想在非客户区画背景。于是按照以前操作对话框的做法,响应OnNcPaint()
  发现死活坐标不对。图的坐标怎么也不对,而这些代码在对话框里都是正常的。
  [code=C/C++][/code]
void CTestView::OnNcPaint()//坐标位置不对!!!!
{
HDC hdc=::GetDC(m_hWnd);//SDK全局函数,GetDC返回的DC的默认的剪裁区是整个窗口的大小
CDC *pdc=GetWindowDC();
CRect CapRct; 
CRect rect;
GetWindowRect(&CapRct);
OffsetRect(&CapRct, -CapRct.left, -CapRct.top) ;

rect.top=CapRct.top;
rect.right=CapRct.right;
pdc->FillSolidRect(&rect,RGB(91,111,121));
pdc->SetBkMode(TRANSPARENT); //设置背景透明
pdc->SetTextColor(RGB(143,237,134)); //标题栏白色文字
pdc->TextOut (CapRct.left+10,CapRct.top+1,"一 切 尽 在 不 言 中 !");
}
发现根本看不到字,有时能看到也不是非客户区(而是画在了客户区)。
我的猜想是这种单文档操作OnNcPaint()的方法跟一般的基本套路不同,还是怎么回事?
 求解!

[解决办法]
标题党
[解决办法]
非客户绘制可以参考这个例子
http://download.csdn.net/detail/xianglitian/249985
[解决办法]
跟你玩笑呢。
[解决办法]
GetWindowRect(&CapRct);
还是:
GetClientRect(&CapRct);

[解决办法]
不知道你的目的。
[解决办法]

探讨
如何去掉 单文档标题栏,以CFormView为基类的最大化,最小化,关闭的系统按钮?
我分别以位图代替,请问如何让位图响应比如关闭的消息?

[解决办法]
pdc->TextOut (CapRct.left+10,CapRct.top+1,_T("一 切 尽 在 不 言 中 !"));
试试
[解决办法]
不知道问题什么意思。
不过 WindowRect 针对整个窗口, ClientRect 针对客户区。

热点排行