读书人

这段网上流传的经典代码为什么会报错

发布时间: 2012-03-18 13:55:38 作者: rapoo

这段网上流传的经典代码,为什么会报错啊
在单元文件的.h文件中加入:

private: // User declarations
void __fastcall WndProc(TMessage &Msg);

在单元文件的.cpp文件中加入:
// 重载窗体的WndProc实现截获窗体消息
void __fastcall TForm1::WndProc(TMessage &Msg)
{
switch(Msg.Msg)
{
case WM_NCHITTEST: //
{
// 分解当前鼠标的坐标
int nPosX = LOWORD(Msg.LParam);
int nPosY = HIWORD(Msg.LParam);
if(nPosX >= Left + Width - 2 && nPosY >= Top + Height - 2)
// 本文转自 C++Builder 研究 - http://www.ccrun.com/article.asp?i=990&d=70jx1b
{
// 鼠标位置在窗体的右下角附近
Msg.Result = HTBOTTOMRIGHT;
return;
}
else if(nPosX >= Left + Width -2)
{
// 鼠标位置在窗体右侧
Msg.Result = HTRIGHT;
return;
}
else if(nPosY >= Top + Height - 2)
{
// 鼠标位置在窗体下方
Msg.Result = HTBOTTOM;
return;
}
// 以上只判断鼠标位置是否在右侧,右下角,下方,所以仅仅当鼠标指针在这三个位置时才会改变成改变大小的形状,拖动后可改变大小。
break;
}
default:
break;
}
TForm::WndProc(Msg);
}

错误提示
[C++ Error] TfmMain.cpp(1890): E2034 Cannot convert 'int' to 'TsuiImagePanel *'
[C++ Warning] TfmMain.cpp(1898): W8004 'nPosY' is assigned a value that is never used

[解决办法]
这个错误不是上面额代码引起的吧
[解决办法]

探讨

引用:
没看见哪个类型是TsuiImagePanel *啊,奇怪


现在又开始抱着个错了
project new.exe raised exception class EStackOverflow with message 'Stack over‘

说什么栈溢出
怎么回事呢

[解决办法]
以上代码,我直接复制粘贴,编译运行好无压力,看来是你的其他代码引起的错误,仔细检查一下吧。
[解决办法]
ccrun里面有文件可以下的,建议你下文件。
[解决办法]
TsuiImagePanel 可能是你安装了的 suipack控件,没设置好

读书人网 >C++ Builder

热点推荐