读书人

怎么设置窗体的隐藏和显示

发布时间: 2012-02-15 12:09:44 作者: rapoo

如何设置窗体的隐藏和显示
我用了hide和show,但是如果只有一个窗体(也就是主窗体)的情况下不行
用Application-> ShowMainForm=false;
然后Application-> ShowMainForm=true;好像也不行


难道只有用主副窗体的方式??

[解决办法]
Form1-> Hide();
Form1-> show();
[解决办法]
推荐使用API
/***************************************************************************\
函数名称:SetWindowPos()
函数功能:为窗口指定一个新位置和状态,也可改变窗口在内部窗口列表中的位置。
声明形式:BOOL SetWindowPos
{
HDWP hwnd,
HDWP hwndInsertAfter,
int x,
int y,
int cx,
int cy,
UNIT uFlags
};
输入参数:hwnd,要重新定位的窗口;
hwndInsertAfter,在窗口列表中,窗口hwnd会排列在这个窗口的后面,参数可用以下常量:
HWND_BOTTOM,将窗口置于窗口列表底部;
HWND_TOP,将窗口置于Z序列顶部,Z序列是窗口针对分级结构中一个给定级别显示的顺序;
HWND_TOPMOST,将窗口置于列表顶部,位于任何最顶级窗口的前面;
HWND_NOTTOPMOST,将窗口置于列表顶部,位于任何最顶级窗口的后面。
x、y,新窗口的坐标(用父窗口的客户区坐标表示);
cx、cy,指定新窗口的宽度和高度;
uFlags,指定窗口的尺寸和边框类型,参数可用以下常量:
SWP_DRAWFRAME,围绕窗口画一条边框;
SWP_HIDEWINDOW,隐藏窗口;
SWP_NOTACTIVATE,不激活窗口;
SWP_NOMOVE,保持当前位置(x、y被忽略);
SWP_NOREDRAW,窗口不自动重画;
SWP_SIZE,保持当前大小(cx、cy被忽略);
SWP_NOZORDER,保持在窗口列表的当前位置(hwndInsertAfter被忽略);
SWP_SHOWWINDOW,显示窗口;
SWP_NOOWNERZORDER,不改变Z序列的所有者(hwndInsertAfter被忽略);
SWP_NOSENDCHANGING,窗口不发出WM_WINDOWPOSCHANGING消息。
输出参数:BOOL型,true表示调用成功,false表示调用失败。
备 注:
\***************************************************************************/
[解决办法]
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
try
{
Application-> Initialize();
Application-> CreateForm(__classid(TForm1), &Form1);
Sleep(3000);//这样可以不???
Application-> Run();
}
catch (Exception &exception)
{
Application-> ShowException(&exception);
}
return 0;
}
[解决办法]
Application-> Initialize();
Sleep(3000);
Application-> CreateForm(__classid(TForm1), &Form1);
这样似乎也可以。。。

读书人网 >C++ Builder

热点推荐