全屏显示界面的设计
我做一个程序,是全屏显示的.可全屏显示的控件如何放置,比如:萤幕的分辩率为800*600,在VC的编辑器下是没法做的.有哪位老兄知道呀!最好有实例.(对话框或单文档的例子)
我的邮箱:computer73@sohu.com
问题点数:0、回复次数:13Top
1 楼jxnczxl(jxnczxl)回复于 2005-06-01 21:07:44 得分 0
用函数GetSystemMetrics(...)可以得到屏幕的大小,//我忘了它怎么写了,你可以查API手册。Top
2 楼xlzxlich(阳光)回复于 2005-06-02 03:14:43 得分 0
正好有这方面的东东,发一份给你好了。
你看看有用不。Top
3 楼xlzxlich(阳光)回复于 2005-06-02 03:17:02 得分 0
发不了
m_bFullMap2Screen=!m_bFullMap2Screen; // 设置全屏显示标志
LONG style = ::GetWindowLong(this->m_hWnd,GWL_STYLE);
if(m_bFullMap2Screen)//全屏显示
{
style &= ~(WS_DLGFRAME | WS_THICKFRAME);
SetWindowLong(this->m_hWnd,GWL_STYLE, style);
this->ShowWindow(SW_SHOWMAXIMIZED);
CRect rect;
this->GetWindowRect(&rect);
::SetWindowPos(this->m_hWnd,HWND_NOTOPMOST,rect.left-1, rect.top-1, rect.right-rect.left + 3, rect.bottom-rect.top + 3, SWP_FRAMECHANGED);
}
else
{
style |= WS_DLGFRAME | WS_THICKFRAME;
SetWindowLong(this->m_hWnd, GWL_STYLE, style);
this->ShowWindow(SW_NORMAL);
}
Top
4 楼fanqing(火影忍者+28%(准备学习进程/线程))回复于 2005-06-02 08:13:49 得分 0
根据屏幕大小自己调节控件大小--如movewindowTop
5 楼COMPUTERZZZ(oiu)回复于 2005-06-02 12:25:04 得分 0
我的意思是程序一启动就全屏显示,窗口大小不能改变,这样的程序中的控件怎么做,比如是一个对话框的程序.Top
6 楼rabo(不哭死人)回复于 2005-06-02 12:27:41 得分 0
所有的控件都用SetWindowsPos来定位。慢慢调。。。。Top
7 楼myazrael(凌晨)回复于 2005-06-02 13:21:52 得分 0
像2楼说的用GetSystemMetrics(XXX)函数,参数XXX如果添入CXSCREEN,则返回一个屏幕宽度,如果是CYSCREEN则返回一个屏幕高.
例子:
CreateWindow(窗口类名,窗口名,窗口,风格,
0,//显示位置X
0,//显示位置Y
GetSystemMetrics(CXSCREEN),//显示窗口宽,CXSCREEN
GetSystemMetrics(CYSCREEN),//显示窗口高,CYSCREEN
NULL, NULL, hInstance, NULL);Top
8 楼psbeond(LibUIDK界面库客服)回复于 2005-06-03 12:50:58 得分 0
1.用GetSystemMetrics得到屏幕的宽和高, 在程序启动时调用SetWindowPos或MoveWindow你的对话框设置和屏幕一样大.
2.你说的VC不能把对话框资源做到和屏幕一样大,你可以做小点,并不是你做多大就显示多大,你可以用SetWindowPos或MoveWindow改变窗口大小
3.控件的位置也是根据SetWindowPos或MoveWindow来定位的.生成资源时控件随便放Top
9 楼COMPUTERZZZ(oiu)回复于 2005-06-03 12:57:28 得分 0
控件的位置也是根据SetWindowPos或MoveWindow来定位的.岂不是太麻烦了,又回到了DOS编程时代了Top
10 楼pomelowu(羽战士)回复于 2005-06-03 13:21:25 得分 0
控件本来就是窗口,用这两个函数定位没什么说不过去的。麻烦是麻烦,VC也就这样了,凑合着用吧Top
11 楼guosx(玄远)回复于 2005-06-03 13:27:08 得分 0
我不知道楼上的兄弟的代码是不是测试过了,反正是在我的机子上是过不去,我把那个什么改成long style = GetSystemMetrics((int)this->m_hWnd)倒行了;Top
12 楼allenhiman(9Ft)回复于 2005-06-03 15:31:43 得分 0
SDI或者MDI
第一步:设置窗口风格为WS_POPUP
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE;
//My codes start here
cs.style = WS_POPUP
//end
return TRUE;
}
第二步:在适当的位置最大化窗口( 比如在yaurPrj.cpp中)
ShowWindow( SW_MAXIMIZE);
如果上面的可以(事实上是可以的) Dialog自然就会了
ps:所谓的全屏就是窗口风格为WS_POPUP,并且最大化
Top
13 楼zengwujun(月之海 为linux入门奋斗100天)回复于 2005-06-03 19:37:53 得分 0
markTop




