首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

怎么让窗体全屏,注意是全屏,而不仅仅是最大化

2012-12-26 
如何让窗体全屏,注意是全屏,而不仅仅是最大化!如何让Form窗体全屏,注意是全屏,而不仅仅是最大化!就是覆盖

如何让窗体全屏,注意是全屏,而不仅仅是最大化!
如何让Form窗体全屏,注意是全屏,而不仅仅是最大化!
就是覆盖了任务栏的那种。
[最优解释]
Left = 0;
Top = 0;
Width = Screen->Width;
Height = Screen->Height;
[其他解释]
窗体TOPMOST,任务栏不一定配合,找到任务栏,隐藏, 退出最大化时候再恢复。
[其他解释]
听说调用winapi可以实现,求方法
[其他解释]
老妖的工具得到的:

// 以下是查找窗口 SysListView32 的代码:
// 在窗口标题不能确定的情况下可将标题设为NULL
HWND MyFindWindow()
{
    const int MyMaxParentWinCount = 3;
    // 父窗口类名数组
    char *A_szClassName[MyMaxParentWinCount] =
    {
        "Progman",
        "SHELLDLL_DefView",
        "SysListView32"
    };
    // 父窗口标题数组
    char *A_szWinName[MyMaxParentWinCount] =
    {
        "Program Manager",
        "",
        "FolderView"
    };
    // 首先求得顶级父窗口
    HWND hLastWin = FindWindow(A_szClassName[0], A_szWinName[0]);
    // 逐次用FindWindowEx函数求出各级子窗口
    for(int i=1; i<MyMaxParentWinCount; i++)
    {
        hLastWin = FindWindowEx(hLastWin, NULL,
            A_szClassName[i], A_szWinName[i]);
    }
    return hLastWin;
}
// 举例: HWND hLastWin = MyFindWindow();

然后::ShowWindow(hwnd, WM_HIDE);隐藏, SW_SHOW显示
[其他解释]
如果任务栏属性选择了"将任务栏保持在其它窗口的前端", 很难覆盖, 另外如果选择了"自动隐藏任务栏",鼠标移到屏幕下面,任务栏又出来了,所以程序全屏的同时, 要考虑对任务栏处理.
[其他解释]
void __fastcall TForm1::Button1Click(TObject *Sender)
{   //全屏
    Form1->BorderStyle = bsNone ;
    Left = 0;
    Top = 0;
    Width = Screen->Width;
    Height = Screen->Height;
}
//---------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)
{   //退出全屏
    Form1->BorderStyle = bsSizeable ;
}
[其他解释]
你这个全屏显然是想覆盖整个桌面,不知道窗体是什么样式的。如果可以设置成BorderStyle = bsSingle
那么WindowState = wsMaximized就能满足你的要求
[其他解释]
把宽高,设置到屏幕的宽高~~好想法~~

热点排行