fun(this->m_hWnd);
但是在bcb6里this没找到m_hWnd啊!!
我该怎么得到这个HWND啊??
从来没用过bcb,今天有个项目非要用这个~郁闷啊~~~~~
10 个解决方案
#1
this->Handle
#2
Form的Handle就是HWND,其它的也类似
#3
bool aa = pSE->OpenFaultManageWindow(this->Handle);
if(!aa)
{
MessageBox(NULL,"调用失败","",MB_OK);
}
else
{
MessageBox(NULL,"调用成功","",MB_OK);
}
提示调用成功,但是没有弹出窗口。我这个函数是调用一个外部程序的一个窗口。
现在提示调用成功,但是没有弹出的窗体!是否说明还是传的窗口句柄有问题?
#4
关键是你这段代码写在什么地方了?只在写在Form类的成员函数中时,这个this才代表当前窗体。
#5
妖哥说的是关键,这个this可不一定就是你的当前窗体呀.
#6
//---------------------------------------------------------------------------
#include <clx.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.xfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
//MessageBox(NULL,"Hello world!","",MB_OK );
//HWND hwnd = this->Handle;
bool aa = pSE->OpenFaultManageWindow(this->Handle);
if(aa)
{
MessageBox(NULL,"调用成功","",MB_OK);
}
else
{
MessageBox(NULL,"调用失败","",MB_OK);
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
pSE = new_TSEApi();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
delete_TSEApi(pSE);
}
//---------------------------------------------------------------------------
这是全部代码,我就是在一个窗体中加了一个按钮,然后在按钮的事件中调用pSE->OpenFaultManageWindow函数,这个函数的参数是传入一个HWND,使其能在当前程序中调出一个窗口。
那我该怎么用这个this啊?
#7
void CwwwDlg::OnBnClickedButton2()
{
// TODO: 在此添加控件通知处理程序代码
pSE->OpenFaultManageWindow(this->m_hWnd);
SetTimer(1,500,NULL);
//pSE->OpenFaultManageWindow();
}
我在VC中这样调用没问题~~
#8
clx?你这不是VCL的工程?
#9
饿……………………………………
今天头一次接触bcb,我创建了一个vcl就能实现了~~~
#10
谢谢大家啊~~
#1
this->Handle
#2
Form的Handle就是HWND,其它的也类似
#3
bool aa = pSE->OpenFaultManageWindow(this->Handle);
if(!aa)
{
MessageBox(NULL,"调用失败","",MB_OK);
}
else
{
MessageBox(NULL,"调用成功","",MB_OK);
}
提示调用成功,但是没有弹出窗口。我这个函数是调用一个外部程序的一个窗口。
现在提示调用成功,但是没有弹出的窗体!是否说明还是传的窗口句柄有问题?
#4
关键是你这段代码写在什么地方了?只在写在Form类的成员函数中时,这个this才代表当前窗体。
#5
妖哥说的是关键,这个this可不一定就是你的当前窗体呀.
#6
//---------------------------------------------------------------------------
#include <clx.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.xfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
//MessageBox(NULL,"Hello world!","",MB_OK );
//HWND hwnd = this->Handle;
bool aa = pSE->OpenFaultManageWindow(this->Handle);
if(aa)
{
MessageBox(NULL,"调用成功","",MB_OK);
}
else
{
MessageBox(NULL,"调用失败","",MB_OK);
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
pSE = new_TSEApi();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
delete_TSEApi(pSE);
}
//---------------------------------------------------------------------------
这是全部代码,我就是在一个窗体中加了一个按钮,然后在按钮的事件中调用pSE->OpenFaultManageWindow函数,这个函数的参数是传入一个HWND,使其能在当前程序中调出一个窗口。
那我该怎么用这个this啊?
#7
void CwwwDlg::OnBnClickedButton2()
{
// TODO: 在此添加控件通知处理程序代码
pSE->OpenFaultManageWindow(this->m_hWnd);
SetTimer(1,500,NULL);
//pSE->OpenFaultManageWindow();
}
我在VC中这样调用没问题~~
#8
clx?你这不是VCL的工程?
#9
饿……………………………………
今天头一次接触bcb,我创建了一个vcl就能实现了~~~
#10
谢谢大家啊~~