问:请大家看看我的程序,为什么会出现如下问题!(50分)

  • 主题发起人 主题发起人 dearchen
  • 开始时间 开始时间
D

dearchen

Unregistered / Unconfirmed
GUEST, unregistred user!
我的程序如下:(是BCB的)
TPoint nPoint1[4];
nPoint1[0]= GetPoint(m_Line->StartP,m_Line->EndP,90,3,&nPoint1[1]);
nPoint1[3]= GetPoint(m_Line->EndP,m_Line->StartP,90,3,&nPoint1[2]);
HRGN nRgn =::CreatePolygonRgn(nPoint1,4,WINDING);

if (PtInRegion(nRgn,nPoint.x,nPoint.y))
m_Line->ShowHandle = !m_Line->ShowHandle;
}
::DeleteObject(nRgn);//*—……%
编译时在*—……%行出错:说nRgn 没有定义,奇怪的很!
当我把*—……%行注释掉后程序仍能执行,满足我的要求,但好象用了CreatePolygonRgn
必须用DeleteObject的说!
Help me!!!!!

 
兄弟你一定是少了一个#include <wingdi.h>文件!我测试了一下你的初始没有问题啊!
 
{ //"{" starts a scope

/// Some other statements

HRGN nRgn =::CreatePolygonRgn(nPoint1,4,WINDING);

if (PtInRegion(nRgn,nPoint.x,nPoint.y))
m_Line->ShowHandle = !m_Line->ShowHandle;
} //"}" ends a scope
::DeleteObject(nRgn);//*—……% //Fail 'cause u use a var. defined in a inner scope
把nRgn的定义放到花括号外边!
 
一般出现这种情况,八成是头文件少了
 
多人接受答案了。
 
后退
顶部