VC编程指南68篇

源代码在线查看: vc编程指南68篇(2).txt

软件大小: 26 K
上传用户: cal04
关键词: 编程指南
下载地址: 免注册下载 普通下载 VIP

相关代码

				  9-16: 对窗口的 控制 
				  
				  9. 如何改变窗口的 图标? 
				    向窗口发送 WM_SECTION消息。 
				    Example: 
				      HICON hIcon=AfxGetApp() ->LoadIcon(IDI_ICON); 
				      ASSERT(hIcon); 
				      AfxGetMainWnd() ->SendMessage(WM_SECTION,TRUE,(LPARAM) hIcon); 
				  
				 10. 如何改变窗口的 缺省风格? 
				      重栽 CWnd:: PreCreateWindow 并修改CREATESTRUCT结构来指定窗口风格和其他 
				     创建信息. 
				     Example: Delete "Max" Button and Set Original Window's Position and Size 
				  
				      BOOL CMainFrame::  PreCreateWindow (CREATESTRUCT &cs) 
				      { 
				       cs.style &=~WS_MAXINIZEMOX; 
				  
				       cs.x=cs.y=0; 
				       cs.cx=GetSystemMetrics(SM_CXSCREEN/2); 
				       cs.cy=GetSystemMetrics(SM_CYSCREEN/2); 
				  
				        return CMDIFramewnd ::PreCreateWindow(cs); 
				  
				      } 
				  
				  11.  如何将窗口居中显示? 
				        Easy, Call Function CWnd:: Center Windows 
				  
				         Example(1):  Center Window( );  //Relative to it's parent 
				          // Relative to Screen 
				         Example(2):  Center Window(CWnd:: GetDesktopWindow( )); 
				          //Relative to Application's MainWindow 
				         AfxGetMainWnd( ) -> Center Window( ); 
				  
				   12. 如何让窗口和 MDI窗口一启动就最大化和最小化? 
				       先说窗口。 
				       在 InitStance 函数中设定 m_nCmdShow的 取值. 
				         m_nCmdShow=SW_SHOWMAXMIZED ;  //最大化 
				         m_nCmdShow=SW_SHOWMINMIZED ;  //最小化 
				         m_nCmdShow=SW_SHOWNORMAL   ;   //正常方式 
				  
				        MDI窗口: 
				          如果是创建新的应用程序,可以用 MFC AppWizard 的Advanced 按钮并在 
				           MDI子窗口风格组中检测最大化或最小化; 还可以重载 MDI Window 的 
				            PreCreateWindow函数,设置WS_MAXMIZE or WS_MINMIZE; 
				         如果从 CMDIChildWnd 派生,调用 OnInitialUpdate函数中的 CWnd::Show 
				        Window来指定 MDI Child Window的 风格。 
				  
				   13. 如何使程序保持极小状态? 
				       很有意思的 问题 
				        这么办: 在恢复程序窗体大小时, Windows会发送WM_QUERY-OPEN消息, 
				        用 ClassWizard设置成员函数 OnQueryOpen() ,add following code: 
				            Bool CMainFrame:: OnQueryOpen( ) 
				              { 
				                 Return false; 
				              } 
				  
				   14. 如何限制窗口的 大小? 
				      也就是 FixedDialog形式。  Windows 发送 WM_GETMAXMININFO消息来跟踪, 
				    响应它,在 OnGetMAXMININFO 中写代码: 
				  
				   15.  如何使窗口不可见? 
				    很简单,用SW_HIDE 隐藏窗口,可以结合 FindWindow,ShowWindow 控制. 
				  
				   16. 如何使窗口始终在最前方? 
				      两种途径. 
				       BringWindowToTop(Handle); 
				       SetWindowPos函数,指定窗口的 最顶风格,用WS_EX_TOPMOST扩展窗口的 风格 
				  
				
				       Example: 
				         void  ToggleTopMost( CWnd *pWnd) 
				          { 
				             ASSERT_VALID(pWnd); 
				             pWnd ->SetWindowPos(pWnd-> GetStyle( ) &WS_EX_TOPMOST)? 
				              &wndNoTopMOST: &wndTopMost,0,0,0,0,SSP_NOSIZE|WSP_NOMOVE); 
				           } 
				  
							

相关资源