(在线)一个简单问题(50分) 我在1024×768下做界面程序一开始就最大化窗口,用了ShowWindow(SW_SHOWMAXIMIZED);//最大化主窗口是最大化了调到800*600下却远远超过整个屏幕了,应该如何处理?就是无论在哪种分辨率下最大化时,都是一屏,(不遮住任务栏) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 GetSystemmetrics SM_CXSCREEN SM_CXSCREEN//得到屏幕大小 调整显示器分辨率的时候,系统给所有的顶层窗口发送 WM_DISPLAYCHANGE 消息,处理它就行了: case WM_DISPLAYCHANGE: ShowWindow(hWnd,SW_SHOWMAXIMIZED); UpdateWindow(hWnd); return 0; WM_DISPLAYCHANGE :怎么找不到啊,我是基于对话框的 BEGIN_MESSAGE_MAP(CWnd, CCmdTarget) ON_MESSAGE(WM_DISPLAYCHANGE, OnDisplayChange)END_MESSAGE_MAP()afx_msg LRESULT OnDisplayChange(WPARAM, LPARAM); LRESULT CModbusMasterDlg::OnDisplayChange(WPARAM, LPARAM){ ShowWindow(SW_SHOWMAXIMIZED); return 0; }?? HDC hDC = ::GetDC(NULL);int width = GetDeviceCaps(hDC,HORZRES);int height= GetDeviceCaps(hDC,VERTRES);得到屏幕的宽和高,也就是分辨率,然后再设置窗口大小 你的程序是基于对话框的,在OnInitDialog()中,首先获取屏幕分辨率GetSystemmetrics(SM_CXSCREEN);// SM_CYSCREEN,以这个大小用SetWindowPos将窗口设置为屏幕大小。 int nWidth = GetSystemMetrics(SM_CXSCREEN);int nHeight = GetSystemMetrics(SM_CYSCREEN);SetWindowPos(&wndTop,0,0,nWidth,nHeight,SWP_SHOWWINDOW); 使用directUI 遇到的一个问题,如何解决 新手求助。。 力挺小弟淘宝创业,FLASH装修大赛入围最后投票关键时刻,请大家帮忙了 散分2000 ==酷暑烈日下,跪求大侠:在主对话框中枚举子对话框的问题?== 请教高手 可否让VC不编译出“垃圾文件”? 哪为兄台给介绍本关于“数据结构”方面的经典书啊? 请各位仁兄帮忙 头文件为什么出错啊 请问用vb,vc,delpy,c++ buildle编写的知名软件各有哪些?(不包括for .NET) 请问一下这个错误是什么意思?谢谢了 我想学vc++,但是不知道怎样开始 我到底该向哪方面发展呢?
调整显示器分辨率的时候,系统给所有的顶层窗口发送 WM_DISPLAYCHANGE 消息,处理它就行了:
case WM_DISPLAYCHANGE:
ShowWindow(hWnd,SW_SHOWMAXIMIZED);
UpdateWindow(hWnd);
return 0;
ON_MESSAGE(WM_DISPLAYCHANGE, OnDisplayChange)
END_MESSAGE_MAP()afx_msg LRESULT OnDisplayChange(WPARAM, LPARAM);
{
ShowWindow(SW_SHOWMAXIMIZED);
return 0;
}??
int width = GetDeviceCaps(hDC,HORZRES);
int height= GetDeviceCaps(hDC,VERTRES);
得到屏幕的宽和高,也就是分辨率,然后再设置窗口大小
int nHeight = GetSystemMetrics(SM_CYSCREEN);
SetWindowPos(&wndTop,0,0,nWidth,nHeight,SWP_SHOWWINDOW);