为什么EnumChildWindows(Form1->Handle,EnumChildProc,0);是错误的

ssfang 2002-01-08 05:00:10
回调函数的原形为
bool CALLBACK EnumChildProc(HWND hwnd, LPARAM lParam)
{
return true;
}
...全文
106 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
aawolf 2002-01-09
  • 打赏
  • 举报
回复
就是(WNDENUMPROC)的问题,成了,成了,谢谢大家。
马上要出差,来不及放分了,等我回来,谢谢各位!
NowCan 2002-01-08
  • 打赏
  • 举报
回复
什么出错信息?
ssfang 2002-01-08
  • 打赏
  • 举报
回复
EnumChildWindows(Handle,(WNDENUMPROC)EnumChildProc,0);
是正确的,错就错在千万不要把回调函数EnumChildProc放到窗体的类里面,将它提出来。
hydra1101 2002-01-08
  • 打赏
  • 举报
回复
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"


#include "conio.h"
#include "winuser.h"
#pragma hdrstop
#include "condefs.h"


//---------------------------------------------------------------------------
#pragma argsused

using namespace std;

TForm1 *Form1;

int iWindows = 0;

BOOL CALLBACK EnumChildWinProc (HWND hwnd, LPARAM lParam){
iWindows++;
return true;
}

BOOL CALLBACK EnumWinProc (HWND hwnd, LPARAM lParam){
iWindows++;
EnumChildWindows (Form1->Handle, (WNDENUMPROC)EnumChildWinProc, 0);
return true;
}

//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
iWindows = 0;
EnumWindows((WNDENUMPROC)EnumWinProc,0);
Edit1->Text = IntToStr(iWindows);
}
//---------------------------------------------------------------------------
hydra1101 2002-01-08
  • 打赏
  • 举报
回复
试了一下,对的呀。
Wingsun 2002-01-08
  • 打赏
  • 举报
回复
没有错就是这样写的啊!
BOOL CALLBACK EnumChildProc(

HWND hwnd, // handle to child window
LPARAM lParam // application-defined value
)
{
....
....
....
}
EnumChildWindows(Handle,(WNDENUMPROC)EnumChildProc,0);
ssfang 2002-01-08
  • 打赏
  • 举报
回复
我知道是第二个参数不对但
http://community.borland.com/article/0,1410,20123,00.html
中就是这么写的。
aawolf 2002-01-08
  • 打赏
  • 举报
回复
第二个参数不对,你要传回调函数的地址过去,在Delphi里是@EnumChildProc,但在C++里我不知道怎么写,郁闷。

551

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 茶馆
社区管理员
  • 茶馆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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