精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>C/C++>>WINDOWS界面设计>>我该在哪里隐藏我的窗口?

主题:我该在哪里隐藏我的窗口?
发信人: mrcloud()
整理人: wenbobo(2002-12-06 22:33:17), 站内信件
【 在 lifelover (阿北) 的大作中提到: 】
: 我编了一个基于对话框的程序,想在程序一启动就隐藏窗口。
: 如果用ShowWindow函数该在哪里加入代码呢?我试过在OnInitDialog()
: 中是不行的。请大家帮帮我。

在BCB中是这样的:

TaskBar:
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
 try
 {
  Application->Initialize();
  Application->CreateForm(__classid(TForm1), &Form1);
  ShowWindow(Application->Handle,SW_HIDE); 
  Application->ShowMainForm=false;
  Application->Run();
 }
 catch(Exception &exception)
 {
  Application->ShowException(&exception);
 }
 return 0;
 }
}
要显示时:
ShowWindow(Application->Handle,SW_SHOW);
Visible=true;
要再隐藏:
ShowWindow(Application->Handle,SW_HIDE);
Visible=false;

TaskManager:
//------------Header file------------------------------
typedef DWORD (__stdcall *pRegFunction)(DWORD, DWORD);
class TForm1 : public TForm
{
 __published:
  TButton *Button1;
 private:
  HINSTANCE hKernelLib;
  pRegFunction RegisterServiceProcess;
 public:
  __fastcall TForm1(TComponent* Owner);
  __fastcall ~TForm1();
};
//-----------CPP file------------------------------
#include "Unit1.h"
#define RSP_SIMPLE_SERVICE 1 
#define RSP_UNREGISTER_SERVICE 0
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{
 hKernelLib = LoadLibrary("kernel32.dll");
 if(hKernelLib)
 {
  RegisterServiceProcess = (pRegFunction)GetProcAddress(hKernelLib, 
"RegisterServiceProcess");
  if(RegisterServiceProcess)
   RegisterServiceProcess(GetCurrentProcessId(), RSP_SIMPLE_SERVICE
);
 }
}
__fastcall TForm1::~TForm1()
{
 if(hKernelLib)
 {
  if(RegisterServiceProcess)
  RegisterServiceProcess(GetCurrentProcessId(), RSP_UNREGISTER_SERVI
CE);
  FreeLibrary(hKernelLib);
 }
}
//-------------------------------------------------
Note: RegisterServiceProcess 在 Windows NT 中无效。



--
...我的征途是星辰大海...

※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.101.63.121]

[关闭][返回]