窗体显示时FormShow,如何实现向自定义的消息函数发送SC_CLOSE消息??内有代码-〉
自定义消息的代码:
void __fastcall TForm1::WndProc(Messages::TMessage &Message)
{
if(Message.WParam==SC_CLOSE)
{
ShowMessage("用户发送关闭消息");
TForm::WndProc(Message);
}
}
//---------------------------------------------------------------------------
窗体显示的代码:
void __fastcall TForm1::FormShow(TObject *Sender)
{
……………………
……………………
……………………
……………………
Form1->WndProc(&SC_CLOSE); //这是我写的,编译报错!
}
//-------------------------------------------------
问题点数:100、回复次数:10Top
1 楼Behard(我爱天安门)回复于 2002-02-01 19:02:02 得分 20
Form1->WndProc(&SC_CLOSE); //这是我写的,编译报错!
应该把值付给一个变量,才不会出错!Top
2 楼Behard(我爱天安门)回复于 2002-02-01 19:05:23 得分 0
你的只是一个值,C++ 是无法编译的Top
3 楼invalid(空心菜(Python是个好东东,大家多用用!))回复于 2002-02-01 20:07:38 得分 50
你可以通过
SendMessage(Form1->Handle,WM_SYSCOMMAND,SC_CLOSE,NULL);
// Form1->WndProc(&SC_CLOSE); Top
4 楼ThinkX(秋天的树)回复于 2002-02-01 20:28:44 得分 10
代码全错了。
参数类型不对。
Top
5 楼CCLIS(www.cclis.com)回复于 2002-02-01 21:27:13 得分 10
1,参数类型不对,还有SC_CLOSE是常量,不能使用&操作符。
2.在FormShow里调用SC_CLOSE是不是太快了点?Top
6 楼yiwei(变废为宝)回复于 2002-02-01 22:23:35 得分 10
错得一塌糊涂Top
7 楼fengqiang(take)回复于 2002-02-01 23:19:23 得分 0
.h
//---------------------------------------------------------------------------
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{protected:
void __fastcall WndProc(Messages::TMessage &Message);
__published: // IDE-managed Components
private: // User declarations
public: // User declarations
__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
.cpp
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::WndProc(Messages::TMessage &Message)
{
if(Message.WParam==SC_CLOSE)
{
ShowMessage("用户发送关闭消息");
}
TForm::WndProc(Message);
}
Top
8 楼MSFan()回复于 2002-02-01 23:28:02 得分 0
给分。Top
9 楼fengqiang(take)回复于 2002-02-01 23:31:34 得分 0
//加
void __fastcall TForm1::FormShow(TObject *Sender)
{
Form1->Caption ="OK";
Perform(WM_SYSCOMMAND,SC_CLOSE,NULL);
}Top
10 楼fengqiang(take)回复于 2002-02-02 18:03:52 得分 0
分没有掉下来!!!Top




